一、Redis介紹
Redis是當前比較熱門的NOSQL系統之一,它是一個key-value存儲系統。和Memcache類似,但很大程度補償了Memcache的不足,它支持存儲的value類型相對更多,包括string、list、set、zset和hash。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作。在此基礎上,Redis支持各種不同方式的排序。
和Memcache一樣,Redis數據都是緩存在計算機內存中,不同的是,Memcache只能將數據緩存到內存中,無法自動定期寫入硬盤,這就表示,一斷電或重啓,內存清空,數據丟失。所以Memcache的應用場景適用於緩存無需持久化的數據。而Redis不同的是它會週期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,實現數據的持久化。
二、Redis的安裝
ps:安裝前需要檢查是否有c環境,輸入 gcc -v 查看.如果無環境,執行 yum install gcc,先安裝 gcc.
1、首先上官網下載Redis 壓縮包,地址:http://redis.io/download 下載。下載的是 redis-5.0.3.tar.gz 版本.
2、通過遠程管理工具,將壓縮包拷貝到Linux服務器中,執行解壓操作,使用的是 MobaXterm,解壓後的文件夾路徑爲
/home/redis-5.0.3
3、進入redis-5.0.3,執行 make ,對解壓後文件進行編譯.編譯完成之後,進入解壓後的文件夾中會有對應的src、conf等文件夾,證明解壓成功.
4、進入redis-5.0.3/src文件夾,執行 make install 進行Redis安裝
三、Redis的部署
安裝成功後,下面對Redis 進行部署
1、在redis-5.0.3./src文件夾內執行 redis-server 命令,啓動Redis 服務
注意:這裏直接執行redis-server 啓動的Redis服務,是在前臺直接運行的,如果Lunix關閉當前會話,則Redis服務也隨即關閉。正常情況下,啓動Redis服務需要從後臺啓動,並且指定啓動配置文件。
2、後臺啓動redis服務
a)首先編輯 redis-5.0.3/redis.conf 文件,將 daemonize 屬性改爲 yes(表明需要在後臺運行)
同文件中將 protected-mode yes 改成 protected-mode no,可視化
b)重啓動redis服務,並指定啓動服務配置文件
/home/redis-5.0.3/src/redis-server /home/redis-5.0.3/redis.conf
3.開機啓動redis
設置redis.conf中屬性 daemonize yes
將 redis.conf 複製到 /etc/redis/6379.conf 文件名問端口號,端口號改變文件名需同時改變
複製redis啓動腳本,通常在 redis/utils/下. cp /usr/redis/redis-5.0.3/utils/redis_init_script /etc/init.d/redis
打開復制後的啓動腳本, vi /etc/init.d/redis
#在文件的頭部添加下面兩行註釋代碼,也就是在文件中
#!/bin/sh的下方添加
# chkconfig: 2345 10 90
# description: Start and Stop redis
同時下方的
REDISPORT 6379
EXEC=/user/local/bin/redis-server
CLIEXEC=/user/local/bin/redis-cli
修改爲自己redis的服務於客戶端啓動文件地址
打開redis命令:service redis start
關閉redis命令:service redis stop
設爲開機啓動:chkconfig redis on
設爲開機關閉:chkconfig redis off
四、Redis 操作常用命令
Redis:
[root@localhost src]# redis-server ../redis.conf 啓動redis服務,並指定配置文件
[root@localhost src]# redis-cli 啓動redis 客戶端
[root@localhost src]# redis-cli shutdown 關閉redis客戶端
安裝過程遇到了一些問題:
make 時報錯:
make[1]: [persist-settings] Error 2 (ignored)
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/home/redis-5.0.3/src'
make: *** [all] Error 2
解決方法:安裝gcc
命令如下:yum install gcc
2、文件缺失
make報錯:
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
#include <jemalloc/jemalloc.h>
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/home/redis-5.0.3/src'
make: *** [all] Error 2
解決方案:
分別進入`/home/redis-5.0.3/deps下的 hiredis、lua 運行make
如果make還有錯誤,嘗試下刪除解壓縮的redis文件,重新安裝.
五.Redis允許遠程連接
將 redis.conf 文件中的 bind 127.0.0.1 註釋掉,即可遠程連接.
遠程連接時,如果長時間無響應,可能是防火牆問題.控制檯輸入(centos7):
firewall-cmd --zone=public --add-port=6379/tcp --permanent //ok 開放redis 6379端口
firewall-cmd --reload //ok 重載防火牆
如果redis已經開啓,需要重啓.進入redis安裝目錄下的src,輸入 redis-cli shutdown關閉,然後帶配置文件重啓
redis-server ../redis.config
在做測試,連接成功.
(查看防火牆以開放端口 firewall-cmd --zone=public --list-port)