Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Làm cách nào để sử dụng hợp lý các nhóm kết nối trong redis?

Redis-py cung cấp một nhóm kết nối cho bạn mà từ đó bạn có thể lấy một kết nối. Nhóm kết nối tạo một tập hợp các kết nối mà bạn có thể sử dụng khi cần thiết (và khi hoàn tất - kết nối được trả về nhóm kết nối để tái sử dụng tiếp). Việc cố gắng tạo kết nối nhanh chóng mà không loại bỏ chúng (tức là không sử dụng nhóm hoặc không sử dụng nhóm đúng cách) sẽ khiến bạn có quá nhiều kết nối để redis (cho đến khi bạn đạt đến giới hạn kết nối).

Bạn có thể chọn thiết lập nhóm kết nối trong phương thức init và đặt nhóm toàn cầu (bạn có thể xem xét các tùy chọn khác nếu không thoải mái với toàn cầu).

redis_pool = None

def init():
    global redis_pool
    print("PID %d: initializing redis pool..." % os.getpid())
    redis_pool = redis.ConnectionPool(host='10.0.0.1', port=6379, db=0)

Sau đó, bạn có thể truy xuất kết nối từ một nhóm như sau:

redis_conn = redis.Redis(connection_pool=redis_pool)

Ngoài ra, tôi giả sử bạn đang sử dụng Rentis cùng với redis-py vì nó sẽ cải thiện hiệu suất trong một số trường hợp nhất định. Bạn cũng đã kiểm tra số lượng kết nối mở tới máy chủ redis với thiết lập hiện tại của mình chưa vì nó rất có thể là khá cao? Bạn có thể sử dụng lệnh INFO để lấy thông tin đó:

redis-cli info

Kiểm tra Khách hàng trong đó bạn sẽ thấy " connect_clients "trường sẽ cho bạn biết có bao nhiêu kết nối bạn đã mở tới máy chủ redis ngay lúc đó.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. flushdb không xóa tất cả các phím trong redis?

  2. Cách sử dụng ServiceStack.Redis.Sentinel

  3. Làm thế nào để lấy các khóa không khớp với một mẫu cụ thể trong redis?

  4. Các dấu trọng âm được lưu trữ trong Red không thể đọc được

  5. Sự cố trong giải mã redis-cache cho các đối tượng trong Spring-boot