Redis4.0.1安裝以及主從複製詳解,redis4.0.1詳解
0、何為Redis
Redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value類型相對更多,包括string(字串)、list(鏈表)、set(集合)和zset(有序集合)。這些資料類型都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,Redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是緩衝在記憶體中。區別的是Redis會周期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。Redis 是一個高效能的key-value資料庫。 Redis的出現,很大程度補償了memcached這類keyvalue儲存的不足,在部分場合可以對關聯式資料庫起到很好的補充作用。
1、Redis 安裝1.1 安裝前環境說明
使用的是CentOS 7 版本的Linux系統,
master ip 為10.211.55.3
slave ip 為10.211.55.4
虛擬機器工具使用的是Parallels Desktop
1.2 下載Redis
Redis可以到官方網站上面進行下載:https://redis.io/download,現在最新的穩定版已經到4.0了。
這裡使用的是redis-4.0.1.tar.gz。
1.3 安裝步驟
$ wget http://download.redis.io/releases/redis-4.0.1.tar.gz$ tar xzf redis-4.0.1.tar.gz -C /usr/local/$ cd /usr/local/redis-4.0.1$ make & make test
make
可能出現的異常
make[1]: Leaving directory `/usr/local/redis-4.0.1/src'make[1]: Entering directory `/usr/local/redis-4.0.1/src'You need tcl 8.5 or newer in order to run the Redis testmake[1]: *** [test] Error 1make[1]: Leaving directory `/usr/local/redis-4.0.1/src'make: *** [test] Error 2
解決方案
yum install -y tcl
2、Redis 簡單配置
所有配置修改都在此設定檔
/usr/local/redis-4.0.1/redis.conf
2.1 修改為守護進程的方式運行
Redis預設不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程
#daemonize no #修改為yes daemonize yes
2.2 綁定的主機地址
bind後面再添加主機的ip,後面主從複製
從Redis需要通過IP串連。
bind 127.0.0.1 10.211.55.3
2.3 設定Redis 密碼
這裡密碼設定為javen
# requirepass foobaredrequirepass javen
2.4 設定Redis 連接埠號碼
預設連接埠為6379
port 6379
3、測試Redis
#預設設定檔/usr/local/redis-4.0.1/redis.confsrc/redis-server#或者指定設定檔src/redis-server redis.conf
後端啟動
src/redis-server &
src/redis-cli# 如果有密碼則src/redis-cli -a Javen
#預設設定檔 /usr/local/redis-4.0.1/redis.conf 中的連接埠src/redis-cli shutdown#指定連接埠src/redis-cli -p 6666 shutdown
4、Redis 主從複製配置
Redis的主從複製功能非常強大,一個master可以擁有多個slave,而一個slave又可以擁有多個slave,如此下去,形成了強大的多級伺服器叢集架構。下面簡單的進行一下配置。
修改slave的redis設定檔
- master的redis設定檔只要設定好
bind
即可
修改slave的redis設定檔
slaveof 10.211.55.3 6379 (映射到主伺服器上,6379
是連接埠號碼)
也可以動態設定:
通過redis-cli 串連到從節點伺服器,執行下面命令即可。
slaveof 10.211.55.3 6379
如果master設定了驗證密碼,還需配置masterauth。我這裡的master設定了驗證密碼為javen,所以配置masterauth javen。
配置完之後啟動slave的Redis服務,OK,主從配置完成(是不是很簡單)。
下面測試一下:
在master和slave分別執行info命令,查看結果如下:
slave:
info" data-snippet-id="ext.a48eb390a343ced46aae6ab453a5354f" data-snippet-saved="false" data-codota-status="done">[root@centos-linux-2 redis-4.0.1]# src/redis-cli127.0.0.1:6379> info
如果從Redis串連到了master則master_link_status:up
否則為down
。如果為down
請堅持master的Redis是否bind
了主機的IP以及是否設定了密碼。因為從Redis是遠端連線必須設定bind
,如果master的Redis設定了密碼slave的Redis必須設定masterauth
master:
然後在master執行set age 18
在slave執行get age,看是否能得到18,如果能夠得到值則說明配置成功。
下面把slave修改的參數貼出來:
daemonize yesbind 127.0.0.1 10.211.55.4 requirepass javenport 6379slaveof 10.211.55.3 6379masterauth javen
5、Redis 遠端連線
用法:redis-cli [OPTIONS] [cmd [arg [arg …]]]
-h <主機ip>,預設是127.0.0.1
-p <連接埠>,預設是6379
-a <密碼>,如果redis加鎖,需要傳遞密碼
–help,顯示協助資訊
redis-cli -h 10.211.55.4 -p 6379 -a javen
推薦閱讀:
基於 CentOS Mysql 5.7.19 安裝與主從同步配置詳解
基於CentOS搭建 Git 服務
基於 CentOS 搭建 FTP 檔案服務
10分鐘搭建屬於自己的ngork伺服器,實現內網穿透
JDK開發環境搭建及環境變數配置
極速開發