Redis簡介
Redis是流行的開源NoSQL數(shù)據(jù)庫职车,所有數(shù)據(jù)加載到內(nèi)存提供高性能讀寫請求遮斥,并且實(shí)現(xiàn)豐富的數(shù)據(jù)結(jié)構(gòu)。
安裝Redis的方法很簡單吮螺,Ubuntu/Debian系統(tǒng)通過apt-get install redis-server安裝饶囚,CentOS系統(tǒng)通過yum install redis安裝,Linux操作系統(tǒng)還可以通過docker run -d -p 6379:6379 redis來運(yùn)行鸠补。
Redis配置
Redis的配置文件在/etc/redis/redis.conf萝风,例如下面的基本配置。
port 6379?
tcp-backlog 511
timeout 0?
tcp-keepalive 2147483648
loglevel notice
repl-diskless-sync no
repl-diskless-sync-delay 5
配置限制
Redis的配置項(xiàng)有的取值是數(shù)字紫岩,有的是字符串规惰,而且數(shù)字是有大小限制的,一旦使用了超過long型的配置會導(dǎo)致Redis起不來泉蝌。某顏色云公司的緩存服務(wù)由于沒有對用戶配置組做限制歇万,一旦你使用了超大數(shù)字的配置會導(dǎo)致服務(wù)起不來,但界面仍顯示“活躍”(Bug至今未修復(fù))勋陪。
至于Redis配置的取值范圍贪磺,官網(wǎng)和社區(qū)文檔都沒有記錄,我們通過“親身經(jīng)驗(yàn)”來測試得到了下面的配置限制诅愚。
{"configuration-parameters":[
{
"name": "timeout",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "tcp-keepalive",
"restart_required": false,
"max": 2147483647,
"min": 0,
"type": "integer"
},
{
"name": "repl-diskless-sync-delay",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "repl-ping-slave-period",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "repl-timeout",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "repl-backlog-ttl",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "slave-priority",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "min-slaves-max-lag",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "maxclients",
"restart_required": false,
"max": 10000,
"min": 0,
"type": "integer"
},
{
"name": "maxmemory",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "auto-aof-rewrite-percentage",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "lua-time-limit",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "slowlog-log-slower-than",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "slowlog-max-len",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "latency-monitor-threshold",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "hash-max-ziplist-entries",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "hash-max-ziplist-value",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "list-max-ziplist-entries",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "list-max-ziplist-value",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"max": 9223372036854775807,"name": "set-max-intset-entries",
"min": 0,
"type": "integer"
},
{
"name": "zset-max-ziplist-entries",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "zset-max-ziplist-value",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "hll-sparse-max-bytes",
"restart_required": false,
"max": 15000,
"min": 0,
"type": "integer"
},
{
"name": "hz",
"restart_required": false,
"max": 500,
"min": 1,
"type": "integer"
}]
}
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "zset-max-ziplist-entries",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "zset-max-ziplist-value",
"restart_required": false,
"max": 9223372036854775807,
"min": 0,
"type": "integer"
},
{
"name": "hll-sparse-max-bytes",
"restart_required": false,
"max": 15000,
"min": 0,
"type": "integer"
},
{
"name": "hz",
"restart_required": false,
"max": 500,
"min": 1,
"type": "integer"
}]
}
更好的緩存服務(wù)
當(dāng)然我們不是很無聊就為了寫個JSON文件寒锚,這是OpenStack Trove的配置文件,我們基于這個文件規(guī)范用戶可以修改的Redis配置項(xiàng)违孝。
是為了做更好的緩存服務(wù)I睬啊!