一滤奈、定義:
? ? ? ?Redis 是一個(gè)開源(BSD許可)的,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng)顿苇,它可以用作數(shù)據(jù)庫(kù)峭咒、緩存和消息中間件。 它支持多種類型的數(shù)據(jù)結(jié)構(gòu)纪岁,如?字符串(strings)凑队,?散列(hashes),?列表(lists)幔翰,?集合(sets)漩氨,?有序集合(sorted sets)?與范圍查詢,?bitmaps遗增,?hyperloglogs?和?地理空間(geospatial)?索引半徑查詢叫惊。 Redis 內(nèi)置了?復(fù)制(replication),LUA腳本(Lua scripting)做修,?LRU驅(qū)動(dòng)事件(LRU eviction)霍狰,事務(wù)(transactions)?和不同級(jí)別的?磁盤持久化(persistence)抡草, 并通過?Redis哨兵(Sentinel)和自動(dòng)?分區(qū)(Cluster)提供高可用性(high availability)。
二蔗坯、使用指令
2.1康震、啟動(dòng)Redis服務(wù)和客戶端
? ? ? ?在Windows下安裝好Redis之后,要啟動(dòng)Redis客戶端(redis-cli)的話宾濒,首先要啟動(dòng)Redis?服務(wù)(redis-server)腿短。
先進(jìn)入Redis安裝路徑,輸入cmd進(jìn)入命令窗口鼎兽,輸入:redis-server答姥,如圖1所示,則表示啟動(dòng)Redis服務(wù)谚咬,
然后再進(jìn)入第二個(gè)cmd窗口鹦付,輸入:redis-cli ,啟動(dòng)客戶端择卦,如下圖2所示敲长,其中set表示存值,get表示取值秉继。
2.2祈噪、指令
ping :? 判斷和Redis服務(wù)器是否連通,pong表示連通
config get requirepass : 獲取默認(rèn)密碼尚辑,下圖表示當(dāng)前庫(kù)不存在密碼辑鲤,為空
config set requirepass? xxx :? 設(shè)置密碼,設(shè)置密碼好后再執(zhí)行?config get requirepass 獲取默認(rèn)密碼杠茬,發(fā)現(xiàn)需要驗(yàn)證月褥,執(zhí)行? auth xxx 就好了
echo xxx :?打印給定的字符串
quit :? 退出客戶端,退出后目錄結(jié)構(gòu)都變了 瓢喉,重新登陸的話執(zhí)行 redis-cli 進(jìn)入客戶端 ,? 再進(jìn)行驗(yàn)證密碼
keys? *? :顯示所有的鍵?
select index : 默認(rèn)是0號(hào)數(shù)據(jù)庫(kù)宁赤,例如:執(zhí)行select 1 ,則會(huì)跳到一號(hào)數(shù)據(jù)庫(kù)
del key : 刪除鍵栓票,key是鍵名
dump key :??序列化指定的鍵??
expire?key? seconds :? 設(shè)置鍵的過期時(shí)間决左,秒為單位,超過時(shí)間就會(huì)刪除該鍵走贪,例如:?expire aaa? 5佛猛,表示aaa鍵5s后刪除
move key db : 移動(dòng)鍵到別的庫(kù),例如: move bbb 1厉斟,把bbb鍵移動(dòng)到1號(hào)數(shù)據(jù)庫(kù)
?Pttl :命令以毫秒為單位返回 key 的剩余過期時(shí)間
TTL :命令以秒為單位返回 key 的剩余過期時(shí)間
三挚躯、Redis發(fā)布/訂閱
? ? ? ?Redis發(fā)布/訂閱(pub/sub)是一種消息通信模式,發(fā)送者(pub)發(fā)送消息擦秽,訂閱者(sub)接收消息。Redis客戶端可以訂閱任意數(shù)量的頻道。
? ? ? ?下圖展示了頻道 channel1 感挥, 以及訂閱這個(gè)頻道的三個(gè)客戶端 —— client2 缩搅、 client5 和 client1 之間的關(guān)系:
用的比較多的是 :將信息發(fā)送到指定的頻道、訂閱給定的一個(gè)或多個(gè)頻道的信息触幼。
示例:發(fā)布訂閱是如何工作的硼瓣,需要至少開啟兩個(gè) redis-cli 客戶端
? ? ? ? ? ?第一個(gè)?redis-cli 客戶端創(chuàng)建了訂閱頻道名為 chat1?(指令 :SUBSCRIBE 頻道名):? ?
? ? ? ? ? ?第二個(gè) redis-cli 客戶端(PUBLISH 頻道名 信息內(nèi)容)在相同頻道發(fā)布消息,訂閱者就能接收到消息: