NoSql——redis(高階操作)
上篇部落格講了一下redis的基本操作,主要是安裝以及一些常用命令,這篇部落格來說一下redis的高階操作
一、安全性:
設定了操作許可權之後,必須先登入,沒有登入的會報沒有操作許可權的錯誤!
在配置檔案中,新增requirepass
服務端:redis-start -requirepass.bat
redis-server.exe D:\test\redis\32bit\redis.conf
客戶端:redis-client.bat
redis-cli.exe -h 127.0.0.1 -p 6379
再次啟動客戶端,報沒有許可權的錯誤
redis 127.0.0.1:6379> keys *
(error) ERR operation not permitted
授權:auth+密碼進行授權,用redis-client.bat每次登陸都需要驗證
redis 127.0.0.1:6379> auth leilei
OK
redis 127.0.0.1:6379> keys *
(empty list or set)
redis 127.0.0.1:6379> set username leilei
OK
redis 127.0.0.1:6379> get username
"leilei"
一次性授權,直接配置在bat檔案中,在客戶端添加了-a +密碼
服務端:redis-start -requirepass.bat
redis-server.exe D:\test\redis\32bit\redis.conf
客戶端:redis-client.bat
redis-cli.exe -h 127.0.0.1 -p 6379 -a leilei
二、主從複製
整體結構
<span style="font-size:18px;">redis-start-1.bat redis-server.exe redis-start-2.bat redis-server.exe redis-02.conf redis-02.conf port 6380 requirepass leilei redis-client-1.bat redis-cli.exe -h 127.0.0.1 -p 6379 redis-client-2.bat redis-cli.exe -h 127.0.0.1 -p 6380 -a leilei</span>
其中redis01是主機,使用預設的配置,redis02是從機,埠是6380
操作
1、在redis-client-2.bat執行命令:
redis 127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
2、在redis-client-1.bat新增資料
redis 127.0.0.1:6379> set name leilei
OK
redis 127.0.0.1:6379> set sex man
OK
redis 127.0.0.1:6379> set age 24
OK
3、在redis-client-2.bat查詢
redis 127.0.0.1:6380> keys *
1) "sex"
2) "age"
3) "name"
另一種方式,直接在配置檔案中修改配置資訊就可以了
# Master-Slave replication. Use slaveof to make a Redis instance a copy of
# another Redis server. Note that the configuration is local to the slave
# so for example it is possible to configure the slave to save the DB with a
# different interval, or to listen to another port, and so on.
#
# slaveof <masterip> <masterport>
三、釋出訂閱
整體結構
操作
1、啟動兩個訂閱的客戶端
sbuscribe命令
2、啟動一個釋出的客戶端
publish命令
效果
四、持久化
redis的持久化有兩種方式,一種是預設的快照方式snapshotting,預設存的是資料,另一種是append-only file (aof),存的是操作,預設生成的aof檔案是隻讀的,需要去掉只讀屬性。這個只需要設定一下配置檔案中的appendonly yes即可!