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
指定了连接的回收周期,单位为秒。