1熄守、持久化
持久化分為RDB持久化和AOF秽荤,前者是生成快照,如果數(shù)據(jù)改動(dòng)大時(shí)該持久化效率高柠横;后者記錄命令窃款,數(shù)據(jù)量大但改動(dòng)小時(shí),該持久化效率高得多牍氛。
RDB默認(rèn)是開(kāi)啟的晨继,AOF要開(kāi)啟需改配置文件的appendonly為yes。
a搬俊、RDB的相關(guān)配置:
save 900 1
save 150 10
save 60 10000
代表多久達(dá)到多少改變紊扬,則觸發(fā)RDB生成。
b唉擂、AOF的相關(guān)配置:
# appendfsync always
appendfsync everysec
# appendfsync no
表示什么時(shí)候把AOF從緩存寫(xiě)入到文件里(沒(méi)寫(xiě)入文件的話(huà)餐屎,服務(wù)關(guān)掉就沒(méi)了)
2、主從復(fù)制
設(shè)置主服務(wù)器的地址和密碼:
slaveof <masterip> <masterport>
masterauth <master-password>
3玩祟、cluster集群
首先要開(kāi)啟:cluster-enabled yes
然后:網(wǎng)上介紹的都是用ruby腳本redis-trib.rb來(lái)分配和管理集群(這個(gè)實(shí)戰(zhàn)時(shí)發(fā)現(xiàn)在centOS下有ruby版本問(wèn)題腹缩,然后使用rvm又各種問(wèn)題,暫時(shí)沒(méi)弄出來(lái))
不使用redis-trib.rb,可以用命令加手動(dòng)改nodes.conf來(lái)實(shí)現(xiàn)藏鹊。首先cluster的相關(guān)命令有:
cluster info:看集群是否啟動(dòng)润讥,有幾個(gè)節(jié)點(diǎn),已分配槽的數(shù)量(總共16384個(gè)槽盘寡,編號(hào):0-16383)
cluster nodes:看集群各節(jié)點(diǎn)分別分配了哪些槽(與文件nodes.conf是一致的楚殿,手動(dòng)改是因?yàn)槊畈恢С峙吭O(shè)置槽給節(jié)點(diǎn) ,每個(gè)節(jié)點(diǎn)的connected后面是槽的信息竿痰,比如:0-7000 7551 8620)
cluster meet [ip] [port]:把當(dāng)前節(jié)點(diǎn)加入某個(gè)節(jié)點(diǎn)所在的集群
cluster addslots <slot> [slot ...]: 增加槽
cluster delslots [slot ...]?:刪除槽
cluster flushslots:刪除所有槽
cluster keyslot ?:計(jì)算鍵 key 應(yīng)該被放置在哪個(gè)槽上
cluster replicate <node_id>:把當(dāng)前節(jié)點(diǎn)設(shè)置成另一個(gè)節(jié)點(diǎn)的從節(jié)點(diǎn)(需要先用cluster meet使自身成為集群的一個(gè)節(jié)點(diǎn)脆粥,然后用cluster nodes查看節(jié)點(diǎn)id)
Java使用Redis集群,只需加上如下配置:
spring.redis.cluster.nodes=127.0.0.1:6379,127.0.0.1:6381
spring.redis.cluster.maxRedirects=3
4影涉、訂閱與發(fā)布
訂閱有兩種变隔,訂閱頻道與訂閱模式:
subscribe [channel]:如 subscribe xx
subscribe [pattern]:如 subscribe x*
發(fā)布:
publish [channel] [message]:如 publish xx hello? (以上兩個(gè)訂閱都會(huì)收到)
Java使用訂閱發(fā)布:
發(fā)布頻道index消息:
redisTem.convertAndSend("index", msg); //redisTem類(lèi)型為RedisTemplate<String, String>
訂閱頻道index消息: