1. 程式人生 > >redis-4.0.9安裝

redis-4.0.9安裝

aof 交換 服務 ML least sof and AR retain

1 參考文檔

https://redis.io/download

http://www.redis.cn/topics/cluster-tutorial.html

2 安裝

# redis安裝
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
$ tar xzf redis-4.0.9.tar.gz
$ cd redis-4.0.9
$ make
$ sudo make install

3 服務器調優

3.1 WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

說明:tcp內核參數somaxconn默認值一般是128(定義了系統中每一個端口最大的監聽隊列的長度),對於負載很大的服務程序來說大大的不夠。一般會將它修改為2048或者更大。

解決方案:在/etc/sysctl.conf中添加 net.core.somaxconn = 2048,在終端執行sudo sysctl -p

$ sudo vi /etc/sysctl.conf

*******************************************************
net.core.somaxconn = 2048
*******************************************************

$ 
sudo sysctl -p

3.2 WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1‘ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1‘ for this to take effect.

說明:內核參數overcommit_memory,內存分配策略,可選值:0、1、2。

# 0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。

# 1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。

# 2, 表示內核允許分配超過所有物理內存和交換空間總和的內存

解決方案:在/etc/sysctl.conf中添加 vm.overcommit_memory = 1,在終端執行sudo sysctl -p

$ sudo vi /etc/sysctl.conf

*******************************************************
vm.overcommit_memory = 1
*******************************************************

$ sudo sysctl -p 

3.3 WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled‘ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

解決方案:調整文件/etc/rc.local

$ sudo vi /etc/rc.local

*******************************************************
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
*******************************************************

$ sudo chmod +x /etc/rc.d/rc.local

$ sudo reboot

3.4

4574:M 22 Apr 06:31:47.930 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.

4574:M 22 Apr 06:31:47.930 # Server can‘t set maximum open files to 10032 because of OS error: Operation not permitted.

4574:M 22 Apr 06:31:47.930 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensat

e for low ulimit. If you need higher maxclients increase ‘ulimit -n‘

解決方案:OS -> 01CentOS -> 04 Linux增加打開文件/文件描述符的最大數量(FD)

註:當前登錄用戶為jediz90

$ su root

$ vi /etc/security/limits.conf

jediz90 soft nofile 10240

jediz90 hard nofile 20480 

4 常用操作

## 查詢key
keys *
## 刪除key
del keyname
## 寫入記錄
set key value
## 讀取記錄
get key
## 設置過期時間
expire key seconds
## 查看剩余生存時間
ttl key
## 查看時間戳與微秒數
TIME
## 查看當前庫中的key數量
DBSIZE
## 後臺進程重寫AOF(手動執行重寫aof,即不達到aof要求也不管)
BGREWRITEAOF
## 後臺保存rdb快照(新啟進程保存)
BGSAVE
## 保存rdb快照(進程阻塞保存)
SAVE
## 上次保存時間(通過了解上次保存時間,大致了解丟失了多少數據)
LASTSAVE
## 顯示服務器全部信息
INFO
## 顯示服務器內存信息
info Memory
## 顯示狀態信息
info Stats
## 斷開連接,關閉服務器,不保存數據
SHUTDOWN NOSAVE
## 斷開連接,關閉服務器,保存數據
SHUTDOWN SAVE
## FLUSHALL 清空所有db(清除所有庫的所有鍵)
## FLUSHDB  清空當前db(清除當前庫的所有鍵)

## SLOWLOG 顯示慢查詢
## CONFIG GET 獲取配置信息
## CONFIG SET 設置配置信息
## MONITOR 打開控制臺
## SYNC 主從同步
## CLIENT LIST 客戶端列表
## CLIENT KILL 關閉某個客戶端
## CLIENT SETNAME 為客戶端設置名字
## CLIENT GETNAME 獲取客戶端名字

redis-4.0.9安裝