新聞中心
Redis知識(shí)點(diǎn):一份簡(jiǎn)潔筆記總結(jié)

Redis(Remote Dictionary Server)是一個(gè)高性能的KEY-value數(shù)據(jù)庫(kù),可以在內(nèi)存中存儲(chǔ)數(shù)據(jù),并將數(shù)據(jù)寫(xiě)入磁盤(pán),同時(shí)支持多種數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ),如字符串、列表、集合、有序集合、哈希表等,因此被廣泛用作緩存、消息隊(duì)列、發(fā)布/訂閱系統(tǒng)等。
本文將對(duì)Redis的一些重要概念和使用方法進(jìn)行簡(jiǎn)潔總結(jié)。
1. 數(shù)據(jù)類(lèi)型
Redis支持五種基本數(shù)據(jù)類(lèi)型:字符串、列表、集合、有序集合和哈希表。下面是它們的基本使用方法:
字符串:
SET key value // 設(shè)置鍵值對(duì)
GET key // 獲取鍵值對(duì)
列表:
LPUSH key value1 value2 // 在左側(cè)插入多個(gè)值
RPUSH key value1 value2 // 在右側(cè)插入多個(gè)值
LPOP key // 彈出左側(cè)的值
RPOP key // 彈出右側(cè)的值
LLEN key // 獲取列表長(zhǎng)度
集合:
SADD key member1 member2 // 添加多個(gè)元素
SREM key member1 member2 // 刪除多個(gè)元素
SMEMBERS key // 獲取所有元素
SINTER key1 key2 // 獲取兩個(gè)集合的交集
有序集合:
ZADD key score1 member1 score2 member2 // 添加元素及其分?jǐn)?shù)值
ZRANGE key start stop // 按分?jǐn)?shù)值范圍獲取元素
ZRANK key member // 獲取元素的排名
哈希表:
HSET key field1 value1 // 設(shè)置域的值
HSET key field2 value2
HGETALL key // 獲取所有域及其值
HDEL key field1 // 刪除域
2. 持久化
Redis支持兩種持久化方式:RDB和AOF。RDB是將數(shù)據(jù)保存到磁盤(pán)上的快照,而AOF則是將操作日志保存到磁盤(pán)上,以便在服務(wù)重啟時(shí)重新執(zhí)行命令。
開(kāi)啟RDB持久化:
save 900 1 // 在900秒內(nèi)至少有1個(gè)鍵被修改,則保存快照
save 300 10 // 在300秒內(nèi)至少有10個(gè)鍵被修改,則保存快照
save 60 10000 // 在60秒內(nèi)至少有10000個(gè)鍵被修改,則保存快照
開(kāi)啟AOF持久化:
appendonly yes // 開(kāi)啟AOF
appendfsync always // 每次寫(xiě)入命令時(shí)都執(zhí)行同步
3. 主從復(fù)制
Redis支持主從復(fù)制,可以將一個(gè)Redis實(shí)例的數(shù)據(jù)復(fù)制到另一個(gè)實(shí)例上,實(shí)現(xiàn)數(shù)據(jù)的備份、讀寫(xiě)分離等功能。具體步驟如下:
– 在主節(jié)點(diǎn)上配置密碼并開(kāi)啟主從復(fù)制:
requirepass password // 設(shè)置密碼
slaveof mymaster 6379 // 開(kāi)啟主從復(fù)制
– 在從節(jié)點(diǎn)上連接主節(jié)點(diǎn)并進(jìn)行身份驗(yàn)證:
slaveof 127.0.0.1 6379 // 連接主節(jié)點(diǎn)
auth password // 進(jìn)行身份驗(yàn)證
– 在主節(jié)點(diǎn)上執(zhí)行寫(xiě)入操作,在從節(jié)點(diǎn)上執(zhí)行讀取操作,即可實(shí)現(xiàn)讀寫(xiě)分離。
4. Lua腳本
Redis支持Lua腳本,可以使用它實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯和事務(wù)操作。具體步驟如下:
– 編寫(xiě)Lua腳本,保存為文件:
-- 檢查余額是否足夠
if tonumber(redis.call('GET', KEYS[1])) >= tonumber(ARGV[1]) then
-- 扣減余額并返回結(jié)果
redis.call('DECRBY', KEYS[1], ARGV[1])
return 1
else
return 0
end
– 在Redis中加載腳本:
SCRIPT LOAD "腳本內(nèi)容"
– 在Redis中執(zhí)行腳本:
EVALSHA sha1 命令參數(shù)
5. 分布式鎖
Redis可以通過(guò)SETNX命令實(shí)現(xiàn)分布式鎖。具體步驟如下:
– 在客戶(hù)端嘗試獲取鎖:
SETNX my_lock 1 // 嘗試將鍵my_lock的值設(shè)為1
– 如果返回1,則獲取鎖成功;否則表示鎖已經(jīng)被其他客戶(hù)端獲取。
– 在客戶(hù)端釋放鎖:
DEL my_lock // 刪除鍵my_lock
本文僅介紹了Redis的一部分重要概念和使用方法,更多內(nèi)容請(qǐng)參考Redis官方文檔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站標(biāo)題:Redis知識(shí)點(diǎn)一份簡(jiǎn)潔筆記總結(jié)(redis知識(shí)點(diǎn)筆記總結(jié))
本文來(lái)源:http://fisionsoft.com.cn/article/djeoipe.html


咨詢(xún)
建站咨詢(xún)
