django使用redis集群、连接池、MySQL连接池

redis的相关设置

CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": [
"redis://127.0.0.1:6379/1",
"redis://127.0.0.1:6380/1",
# ...
],
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"CONNECTION_POOL_CLASS": "redis.connection.BlockingConnectionPool",
"CONNECTION_POOL_CLASS_KWARGS": {
"max_connections": 50,
"PASSWORD": "thisisacode",
"timeout": 20,
},
},
}
}

CONNECTION_POOL_CLASS 参数指定了使用的连接池类,默认使用 redis.connection.BlockingConnectionPool

max_connections 参数指定了连接池中的最大连接数,timeout 参数指定了获取连接的超时时间。

MySQL相关设置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '',
        'OPTIONS': {
            'init_command': 'SET default_storage_engine=INNODB',
            'POOL_SIZE': 10,
            'MAX_OVERFLOW': 5, 'POOL_RECYCLE': 300,
        }
    }
}

OPTIONS指定了连接池的相关参数。init_command用于在连接建立时执行的SQL语句,可以用来设置一些初始状态。POOL_SIZE指定了连接池的大小,即最大同时存在的连接数。MAX_OVERFLOW指定了连接池的最大溢出连接数,即当连接池已满时,可以临时创建的额外连接数。POOL_RECYCLE指定了连接的回收周期,单位为秒。

posted @ 2024-01-21 22:28  猪油哥  阅读(87)  评论(0编辑  收藏  举报