ubuntu18--(3)--Windows 10 自帶linux子系統-redis安裝筆記

簡介:

Redis是一個內存中鍵值存儲,以其靈活性、性能和廣泛的語言支持而聞名。它通常用作數據庫、緩存和消息代理,並支持各種數據結構。

下面是記錄

1、安裝啓動(適用於apt-get方式安裝)- 不推薦

大神指路

# 安裝之前檢測是否有安裝redis-cli和redis-server
whereis redis-cli
# redis-cli: /usr/bin/redis-cli /usr/local/bin/redis-cli /usr/share/man/man1/redis-cli.1.gz
whereis redis-server
# redis-server: /usr/bin/redis-server /usr/local/bin/redis-server /usr/share/man/man1/redis-server.1.gz
# 如果有,可以直接用也可以卸載。卸載參照本文卸載步驟

# 安裝
sudo apt-get update
sudo apt-get install redis-server
# 檢查redis服務器系統進程
ps -aux|grep redis
# 通過啓動命令檢查Redis服務器狀態
netstat -nlt|grep 6379
# 啓動 一定以root權限啓動,否則問題多多
# 啓動服務端:
su
redis-server /etc/redis/redis.conf
# 後臺方式啓動 redis-server /etc/redis/redis.conf &
# 啓動客戶端:redis-cli

警告處理:
大神指路
警告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
處理:

su
vim /etc/sysctl.conf
# 再文件最後一行增加
net.core.somaxconn=1024
# 保存成功後,執行命令
sysctl -p
# 有可能不生效,不知道爲啥,哪位大神知道一下?

補充:
net.core.somaxconn是linux中的一個kernel參數,表示socket監聽(listen)的backlog上限。
backlog是socket的監聽隊列,當一個請求(request)尚未被處理或建立時,他會進入backlog。
而socket server可以一次性處理backlog中的所有請求,處理後的請求不再位於監聽隊列中。
當server處理請求較慢,以至於監聽隊列被填滿後,新來的請求會被拒絕。
所以說net.core.somaxconn限制了接收新 TCP 連接偵聽隊列的大小。

警告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.
處理

su
vim /etc/sysctl.conf
# 再文件最後一行增加
vm.overcommit_memory=1
# 保存成功後,執行命令
sysctl -p

補充:
overcommit_memory參數說明:
設置內存分配策略(可選,根據服務器的實際情況進行設置)
/proc/sys/vm/overcommit_memory
可選值:0、1、2。
0, 表示內核將檢查是否有足夠的可用內存供應用進程使用;如果有足夠的可用內存,內存申請允許;否則,內存申請失敗,並把錯誤返回給應用進程。
1, 表示內核允許分配所有的物理內存,而不管當前的內存狀態如何。
2, 表示內核允許分配超過所有物理內存和交換空間總和的內存
注意:redis在dump數據的時候,會fork出一個子進程,理論上child進程所佔用的內存和parent是一樣的,比如parent佔用的內存爲8G,這個時候也要同樣分配8G的內存給child,如果內存無法負擔,往往會造成redis服務器的down機或者IO負載過高,效率下降。所以這裏比較優化的內存分配策略應該設置爲 1(表示內核允許分配所有的物理內存,而不管當前的內存狀態如何)。

後臺啓動,大神指路
修改 配置文件允許局域網內的其他電腦連接redis
文件位置:/etc/redis/redis.conf 如果無法編輯或者無法保存 請先修改權限

2、安裝啓動(適用於源碼編譯安裝)- 推薦

大神指路

# 安裝之前檢測是否有安裝redis-cli和redis-server
whereis redis-cli
# redis-cli: /usr/bin/redis-cli /usr/local/bin/redis-cli /usr/share/man/man1/redis-cli.1.gz
whereis redis-server
# redis-server: /usr/bin/redis-server /usr/local/bin/redis-server /usr/share/man/man1/redis-server.1.gz
# 如果有,可以直接用也可以卸載。卸載參照本文卸載步驟
mkdir -p /opt/install/redis
cd /opt/install/redis
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5
make
# 安裝redis至/usr/local/redis目錄下
make PREFIX=/usr/local/redis install
# 拷貝Redis的redis.conf配置文件至redis的安裝目錄下,
cp redis.conf /usr/local/redis
# 修改Redis配置文件,使Redis以後臺進程的形式啓動
vi /usr/local/redis/redis.conf
# 將daemonize no這行修改爲daemonize yes。這樣redis就會以進程的方式啓動,而不是以前段方式啓動。

# 啓動 使用redis.conf配置文件啓動Redis
/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf

# 停止 
/usr/local/redis/bin/redis-cli shutdown

2.1、 常用配置

添加到系統變量

export PATH=$PATH:/usr/local/redis/bin/
# 查看:echo $PATH
# 啓動
redis-server /usr/local/redis/redis.conf

# 停止
redis-cli shutdown

數據庫文件位置設置

# 數據庫文件配置項爲redis.conf中的 dir指定,./ 表示/etc
# 查看方法
1、啓動redis
2、通過redis-cli連接
6379> config get dir
# 上面的命令返回數據庫的位置

# 配置自己的數據庫位置,這裏我設置爲 /etc/redis/
mkdir -p /opt/install/redis/data。
cd /opt/install/redis/data/
vi /usr
# 把dir的值修改爲 dir /opt/install/redis/data/

3、停止Redis服務

(1)通過redis-cli連接服務器後執行shutdown命令,則執行停止redis服務操作。
(2)可以使用shutdown命令關閉redis服務器外,還可以使用kill+進程號的方式關閉redis服務。
(3)不要使用Kill 9方式關閉redis進程,這樣redis不會進行持久化操作,除此之外,還會造成緩衝區等資源不能優雅關閉,極端情況下會造成AOF和複製丟失數據的情況
(4)shutdown還有一個參數,代表關閉redis服務前是否生產持久化文件

4、常用設置

4.1 設置密碼

大神指路
關鍵字:requirepass foobared
設置完成後需要重啓redis,使用時需要使用:auth foobared

4.2 日誌設置

大神指路
關鍵字:
loglevel debug
logfile /var/log/redis/redis-server.log
需要手動創建對應的日誌文件:touch /var/log/redis/redis-server.log

6、卸載(適用於apt-get方式安裝的)

sudo apt-get purge --auto-remove redis-server

7、卸載(適用於源碼編譯安裝的)

# 1、關閉已經啓動的 Redis 服務,注意,你可能啓動了多個實例,所以可能要逐個關閉,我這裏的情況只有 redis_6379 在運行:
sudo service redis_6379 stop
# ps -ef|grep redis
# kill掉進程 sudo kill xxx
# 2、刪除 usr/local/bin/ 中所有 redis 相關的文件
sudo rm /usr/local/bin/redis-*
# 3、刪除配置目錄和內容
sudo rm -r /etc/redis/
# 4、刪除日誌
sudo rm /var/log/redis/*
# 5、刪除數據目錄和內容
sudo rm -r /var/lib/redis/
# 6、刪除初始化腳本
sudo rm /etc/init.d/redis*
# 7、刪除現有的Redis PID文件(僅當存在時)
sudo rm /var/run/redis*
# 8、重啓服務器
# 現在,Redis 已完全從你的服務器上刪除。

最後,附手冊

http://redisdoc.com/index.html
手冊也可以下載下來單機跑,速度快,爽。


看這裏,看這裏
文章總目錄:博客導航
參考文章:https://blog.csdn.net/u_ascend/article/details/89634779
大神指路:https://blog.csdn.net/zhezhebie/article/details/73470134

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章