❶ Redis --- 八種數據類型(基本命令)
String、Hash、List、Set和Zset。
等同於java中的, Map<String,String> string 是redis裡面的最基本的數據類型,一個key對應一個value。
應用場景 :String是最常用的一種數據類型,普通的key/value存儲都可以歸為此類,如用戶信息,登錄信息和配置信息等;
實現方式 :String在redis內部存儲默認就是一個字元串,被redisObject所引用,當遇到incr、decr等操作(自增自減等原子操作)時會轉成數值型進行計算,此時redisObject的encoding欄位為int。
Redis雖然是用C語言寫的,但卻沒有直接用C語言的字元串,而是自己實現了一套字元串。目的就是為了提升速度,提升性能。 Redis構建了一個叫做簡單動態字元串(Simple Dynamic String),簡稱SDS。
Redis的字元串也會遵守C語言的字元串的實現規則,即 最後一個字元為空字元。然而這個空字元不會被計算在len里頭。
Redis動態擴展步驟:
Redis字元串的性能優勢
常用命令 :set/get/decr/incr/mget等,具體如下;
ps:計數器(字元串的內容為整數的時候可以使用),如 set number 1。
補充:
等同於java中的: Map<String,Map<String,String>> ,redis的hash是一個string類型的field和value的映射表, 特別適合存儲對象。 在redis中,hash因為是一個集合,所以有兩層。第一層是key:hash集合value,第二層是hashkey:string value。所以判斷是否採用hash的時候可以參照有兩層key的設計來做參考。並且注意的是, 設置過期時間只能在第一層的key上面設置。
應用場景 :我們要存儲一個用戶信息對象數據,其中包括用戶ID、用戶姓名、年齡和生日,通過用戶ID我們希望獲取該用戶的姓名或者年齡或者生日;
實現方式 :Redis的Hash實際是內部存儲的Value為一個HashMap,並提供了直接存取這個Map成員的介面。如,Key是用戶ID, value是一個Map。 這個Map的key是成員的屬性名,value是屬性值 。這樣對數據的修改和存取都可以直接通過其內部Map的Key(Redis里稱內部Map的key為field), 也就是通過 key(用戶ID) + field(屬性標簽) 就可以操作對應屬性數據。 當前HashMap的實現有兩種方式 :當HashMap的成員比較少時Redis為了節省內存會採用類似一維數組的方式來緊湊存儲,而不會採用真正的HashMap結構,這時對應的value的redisObject的encoding為zipmap,當成員數量增大時會自動轉成真正的HashMap,此時redisObject的encoding欄位為int。
常用命令 :hget/hset/hgetall等,具體如下:
等同於java中的 Map<String,List<String>> ,list 底層是一個鏈表,在redis中,插入list中的值,只需要找到list的key即可,而不需要像hash一樣插入兩層的key。 list是一種有序的、可重復的集合。
應用場景 :Redis list的應用場景非常多,也是Redis最重要的數據結構之一,比如twitter的關注列表,粉絲列表等都可以用Redis的list結構來實現;
實現方式 :Redis list的實現為一個 雙向鏈表 ,即可以支持反向查找和遍歷,更方便操作,不過帶來了部分額外的內存開銷,Redis內部的很多實現,包括 發送緩沖隊列 等也都是用的這個數據結構。
常用命令 :lpush/rpush/lpop/rpop/lrange等,具體如下:
性能總結 :
它是一個字元串鏈表,left、right都可以插入添加。
等同於java中的 Map<String,Set<String>> ,Set 是一種無序的,不能重復的集合。並且在redis中,只有一個key它的底層由hashTable實現的,天生去重。
應用場景 :Redis set對外提供的功能與list類似是一個列表的功能,特殊之處在於set是可以自動去重的,當你需要存儲一個列表數據,又不希望出現重復數據時,set是一個很好的選擇,並且 set提供了判斷某個成員是否在一個set集合內的重要介面 ,這個也是list所不能提供的;如保存一些標簽的名字。標簽的名字不可以重復,順序是可以無序的。
實現方式 :set 的內部實現是一個 value永遠為null的HashMap,實際就是通過計算hash的方式來快速排重的,這也是set能提供判斷一個成員是否在集合內的原因。
常用命令 :sadd/spop/smembers/sunion等,具體如下:
ZSet(Sorted Set:有序集合) 每個元素都會關聯一個double類型的分數score,分數允許重復,集合元素按照score排序( 當score相同的時候,會按照被插入的鍵的字典順序進行排序 ),還可以通過 score 的范圍來獲取元素的列表。
應用場景 :Redis sorted set的使用場景與set類似,區別是set不是自動有序的,而sorted set可以 通過用戶額外提供一個優先順序(score)的參數來為成員排序,並且是插入有序的,即自動排序。 當你需要一個有序的並且不重復的集合列表,那麼可以選擇sorted set數據結構,比如twitter 的public timeline可以以發表時間作為score來存儲,這樣獲取時就是自動按時間排好序的。
底層實現 : zset 是 Redis 提供的一個非常特別的數據結構,常用作排行榜等功能,以用戶 id 為 value ,關注時間或者分數作為 score 進行排序。實現機制分別是 zipList 和 skipList 。規則如下:
zipList:滿足以下兩個條件
skipList:不滿足以上兩個條件時使用跳錶、組合了hash和skipList
為什麼用skiplist不用平衡樹?
主要從內存佔用、對范圍查找的支持和實現難易程度這三方面總結的原因。
拓展:mysql為什麼不用跳錶?
常用命令 :zadd/zrange/zrem/zcard等;
官網地址: https://redis.io/commands/geoadd
可以用來推算兩地之間的距離,方圓半徑內的人。
關於經度緯度的限制: https://www.redis.net.cn/order/3685.html
一般我們使用Hyperloglog做基數統計。
什麼是基數?就是一個集合中不重復的數的個數。
集合A:{1,3,5,7,9,7}
集合B:{1,3,5,7,9}
AB集合的基數都是5
應用:統計網站的訪問量(一個人訪問網站很多次仍然算作一次)。
優點:佔用的內存是固定的,找2^64次方個數的基數,只需要12KB內存。
缺點:有0.81%的錯誤率,可以忽略不計
概述: bitmap 存儲的是連續的二進制數字(0 和 1),通過 bitmap, 只需要一個 bit 位來表示某個元素對應的值或者狀態,key 就是對應元素本身 。 我們知道 8 個 bit 可以組成一個 byte,所以 bitmap 本身會極大的節省儲存空間。
應用場景: 適合需要保存狀態信息(比如是否簽到、是否登錄...)並需要進一步對這些信息進行分析的場景。比如用戶簽到情況、活躍用戶情況、用戶行為統計(比如是否點贊過某個視頻)。
針對上面提到的一些場景,這里進行進一步說明。
使用場景一:用戶行為分析 很多網站為了分析你的喜好,需要研究你點贊過的內容。
使用場景二:統計活躍用戶
使用時間作為 key,然後用戶 ID 為 offset,如果當日活躍過就設置為 1
那麼我該如果計算某幾天/月/年的活躍用戶呢(暫且約定,統計時間內只有有一天在線就稱為活躍),有請下一個 redis 的命令
使用場景三:用戶在線狀態
對於獲取或者統計用戶在線狀態,使用 bitmap 是一個節約空間效率又高的一種方法。
只需要一個 key,然後用戶 ID 為 offset,如果在線就設置為 1,不在線就設置為 0。
補充 :
巨人的肩膀:
https://www.cnblogs.com/Small-sunshine/p/11687809.html
https://mp.weixin.qq.com/s/CMu7oXVIKp2s-PXTdMlimA
❷ Redis | Redis 字元串相關命令
Redis 支持多種數據結構,比如 字元串、列表、集合、有序集合 和 哈希 等數據結構。本次我整理了關於 字元串 相關的命令,也就是關於 Strings 相關的命令,如下圖。
上圖中用紅色圈中的部分,就是關於 字元串 相關的命令。如果想要在 Redis 中查看相關的命令也可以使用 help 命令來進行查看,命令如下。
在按下回車後,可以看到相應分類命令的說明,如下圖。
圖中就是部分關於 Strings 相關的部分命令。
常用 Strings 相關命令
為了大家能夠直接復制命令進行測試,下面我就不截圖了。
1、set 命令
set 命令的作用是 設置一個 key 的 value 值
設置 key 對應的字元串類型
上面的命令分別對 key1 設置為 value1,對 key2 設置為 value2。
set 命令除了基本的用法外,還有幾個參數,先來說一下 nx 和 xx 兩個參數。
nx 表示 key 不存在時,執行操作
xx 表示 Key 存在時,執行操作
命令 set k1 v1 nx 表示,當 k1 不存在時,給 k1 設置字元串值為 v1,此時 k1 並不存在,因此該命令被執行;
命令 set k2 v2 xx 表示,當 k2 存在時,給 k2 設置字元串值為 v2,此時 k2 並不存在,因此該命令沒有被執行
再介紹另外兩個參數,分別是 ex 和 px,ex 和 px 是在進行 set 命令時可以設置過期時間的命令
ex 表示 設置的過期時間以秒為單位
px 表示 設置的過期時間以毫秒為單位
2、setnx 命令
setnx 命令的作用是 當指定的鍵不存在時給該鍵設置一個值
該命令類似 set 命令附帶了 nx 參數
在上面的命令中,setnx k1 value1,由於 k1 存在,因此命令沒有被執行,setnx k2 value2,由於 k2 不存在,因此命令被執行。
當命令執行成功,返回值為 1
當命令執行不成功,返回值為 0
3、get 命令
get 命令的作用是 獲取指定 key 的值
該命令已經被多次使用了,演示如下:
4、getset 命令
getset 命令的作用是 設置一個 key 的 value,並獲取設置前的值
該命令相當於 先對指定的 key 進行一次 get 操作,再執行一次 set 操作,兩個命令合並,可以保證原子性。
5、mget 命令
mget 命令的作用是 一次獲取多個 key 的值,如果 key 不存在則返回 nil
可以看到,key3 是不存在的,因此 key3 返回的值是 nil
6、mset 命令
mset 命令的作用是 設置多個key value
7、msetnx 命令
msetnx 命令的作用是 設置多個key value,僅當key不存在時
可以看出,msetnx k4 vv4 k5 vv5 時,此時不存在 k4 和 k5 因此該命令執行成功,在執行 msetnx k4 v4 k5 v5 k6 v6 時,由於 k4 和 k5 已經存在,則使得這條命令執行失敗,因此 k4 和 k5 的值仍然是 vv4 和 vv5,並且沒有 k6 這個 key。
8、incr 命令
incr 命令的作用是 執行原子加1操作
9、decr 命令
decr 命令的作用是 整數原子減1
10、incrby 命令
incrby 命令的作用是 執行原子增加一個整數
11、decrby 命令
decrby 命令的作用是 原子減指定的整數
12、incrbyfloat 命令
incrbyfloat 命令的作用是 執行原子增加一個浮點數
13、setrange 命令
setrange 命令的作用是 修改字元串指定偏移的值
字元串的偏移從 0 開始,hello 的長度為 5,最後 1 個下標為 4,當我們 setrange kstr 6 x 時,我們將 kstr 下標 6 的位置設置為了 x,因此在下標 5 的位置處給了一個 x00,即 ASCII 碼的 0。
14、getrange 命令
getrange 命令的作用是 獲取存儲在key上的值的一個子字元串
下標 -1 為最後一個下標,下標 -2 為倒數第二個下標
15、append 命令
append 命令的作用是 追加一個值到key上
總結
這些基礎的命令當中,除了可以當作基礎的操作 字元串 的命令來用,也有其他方面的用處,比如在高並發當中可以用來設置鎖等。把今天整理的命令完善了一個思維導圖,圖片如下。
❸ redis field 是什麼意思 跟key是什麼關系,比如lpush(key,field,value)應該怎麼設置
先說redisredis是一個類似memcached的key/value存儲系統,它支持存儲的value類型相對較多,包括string(字元串)、list(鏈表)、set(集合)和zset(有序集合)。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件(這點兒個人覺得redis比memcache在數據保存上要安全一些),並且在此基礎上實現了master-slave(主從)同步。redis的存取性能很高,SET操作每秒鍾110000次,GET操作每秒鍾81000次(速度很爽!)。Redis針對不同的存儲類型對象提供了不同的命令。redis目前提供四種數據類型:string,list,set及zset(sortedset)。string是最簡單的類型,你可以理解成與Memcached一模一個的類型,一個key對應一個value,其上支持的操作與Memcached的操作類似。但它的功能更豐富。list是一個鏈表結構,主要功能是push、pop、獲取一個范圍的所有值等等。操作中key理解為鏈表的名字。set是集合,和我們數學中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交並差等操作。操作中key理解為集合的名字。zset是set的一個升級版本,他在set的基礎上增加了一個順序屬性,這一屬性在添加修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以理解了有兩列的mysql表,一列存value,一列存順序。操作中key理解為zset的名字。下面提供redis命令:適合全體類型的命令EXISTSkey判斷一個鍵是否存在;存在返回1;否則返回0;DELkey刪除某個key,或是一系列key;DELkey1key2key3key4TYPEkey返回某個key元素的數據類型(none:不存在,string:字元,list,set,zset,hash)KEYSpattern返回匹配的key列表(KEYSfoo*:查找foo開頭的keys)RANDOMKEY隨機獲得一個已經存在的key,如果當前資料庫為空,則返回空字元串RENAMEoldnamenewname更改key的名字,新鍵如果存在將被覆蓋RENAMENXoldnamenewname更改key的名字,如果名字存在則更改失敗DBSIZE返回當前資料庫的key的總數EXPIRE設置某個key的過期時間(秒),(EXPIREbruce1000:設置bruce這個key1000秒後系統自動刪除)注意:如果在還沒有過期的時候,對值進行了改變,那麼那個值會被清除。TTL查找某個key還有多長時間過期,返回時間秒SELECTindex選擇資料庫MOVEkeydbindex將指定鍵從當前資料庫移到目標資料庫dbindex。成功返回1;否則返回0(源資料庫不存在key或目標資料庫已存在同名key);FLUSHDB清空當前資料庫中的所有鍵FLUSHALL清空所有資料庫中的所有鍵處理字元串的命令SETkeyvalue給一個鍵設置字元串值。SETkeynamedatalengthdata(SETbruce10paitoubing:保存key為burce,字元串長度為10的一個字元串paitoubing到資料庫),data最大不可超過1G。GETkey獲取某個key的value值。如key不存在,則返回字元串「nil」;如key的值不為字元串類型,則返回一個錯誤。GETSETkeyvalue可以理解成獲得的key的值然後SET這個值,更加方便的操作(SETbruce10paitoubing,這個時候需要修改bruce變成1234567890並獲取這個以前的數據paitoubing,GETSETbruce101234567890)MGETkey1key2…keyN一次性返回多個鍵的值SETNXkeyvalueSETNX與SET的區別是SET可以創建與更新key的value,而SETNX是如果key不存在,則創建key與value數據MSETkey1value1key2value2…keyNvalueN在一次原子操作下一次性設置多個鍵和值MSETNXkey1value1key2value2…keyNvalueN在一次原子操作下一次性設置多個鍵和值(目標鍵不存在情況下,如果有一個以上的key已存在,則失敗)INCRkey自增鍵值INCRBYkeyinteger令鍵值自增指定數值DECRkey自減鍵值DECRBYkeyinteger令鍵值自減指定數值處理lists的命令RPUSHkeyvalue從List尾部添加一個元素(如序列不存在,則先創建,如已存在同名Key而非序列,則返回錯誤)LPUSHkeyvalue從List頭部添加一個元素LLENkey返回一個List的長度LRANGEkeystartend從自定的范圍內返回序列的元素(LRANGEtestlist02;返回序列testlist前012元素)LTRIMkeystartend修剪某個范圍之外的數據(LTRIMtestlist02;保留012元素,其餘的刪除)LINDEXkeyindex返回某個位置的序列值(LINDEXtestlist0;返回序列testlist位置為0的元素)LSETkeyindexvalue更新某個位置元素的值LREMkeycountvalue從List的頭部(count正數)或尾部(count負數)刪除一定數量(count)匹配value的元素,返回刪除的元素數量。LPOPkey彈出List的第一個元素RPOPkey彈出List的最後一個元素RPOPLPUSHsrckeydstkey彈出_srckey_中最後一個元素並將其壓入_dstkey_頭部,key不存在或序列為空則返回「nil」處理集合(sets)的命令(有索引無序序列)SADDkeymember增加元素到SETS序列,如果元素(membe)不存在則添加成功1,否則失敗0;(SADDtestlist3/none)SREMkeymember刪除SETS序列的某個元素,如果元素不存在則失敗0,否則成功1(SREMtestlist3/None)SPOPkey從集合中隨機彈出一個成員SMOVEsrckeydstkeymember把一個SETS序列的某個元素移動到另外一個SETS序列(SMOVEtestlisttest3/ntwo;從序列testlist移動元素two到test中,testlist中將不存在two元素)SCARDkey統計某個SETS的序列的元素數量SISMEMBERkeymember獲知指定成員是否存在於集合中SINTERkey1key2…keyN返回key1,key2,…,keyN中的交集SINTERSTOREdstkeykey1key2…keyN將key1,key2,…,keyN中的交集存入dstkeySUNIONkey1key2…keyN返回key1,key2,…,keyN的並集SUNIONSTOREdstkeykey1key2…keyN將key1,key2,…,keyN的並集存入dstkeySDIFFkey1key2…keyN依據key2,…,keyN求key1的差集。官方例子:key1=x,a,b,ckey2=ckey3=a,dSDIFFkey1,key2,key3=>x,bSDIFFSTOREdstkeykey1key2…keyN依據key2,…,keyN求key1的差集並存入dstkeySMEMBERSkey返回某個序列的所有元素SRANDMEMBERkey隨機返回某個序列的元素處理有序集合(sortedsets)的命令(zsets)ZADDkeyscoremember添加指定成員到有序集合中,如果目標存在則更新score(分值,排序用)ZREMkeymember從有序集合刪除指定成員ZINCRBYkeyincrementmember如果成員存在則將其增加_increment_,否則將設置一個score為_increment_的成員ZRANGEkeystartend返回升序排序後的指定范圍的成員ZREVRANGEkeystartend返回降序排序後的指定范圍的成員ZRANGEBYSCOREkeyminmax返回所有符合score>=min和score=min和score形式的數據,通過key進行任何操作。ttserver可以將數據持久化保存,memcached全部是保存在內存中,memcached會自動刪除過期數據,最長不超過30天。memcached在和一些api配合時,能自動進行數據的出入序列化,讀取反序列化。ttserver有主從復制的功能,操作日誌等,這完全是資料庫才有的東西。據說memcached正在對整體架構做調整,到時候支持plugin機制.會把網路,事件處理,內存存儲剝離開來.以後要做基於磁碟的key-value存儲就可以寫一個存儲引擎就成了。memcached的二次開發又步入一個小高潮。
❹ redis getset 命令怎麼使用方法
[Redis] redis-cli 命令總結
Redis提供豐富命令(command)資料庫各種數據類型進行操作些commandLinux終端使用
編程比使用Redis Java語言包些命令都應面Redis提供命令做總結
官網命令列表: (英文)
1、連接操作相關命令
quit:關閉連接(connection)
auth:簡單密碼認證
2、value操作命令
exists(key):確認key否存
del(key):刪除key
type(key):返值類型
keys(pattern):返滿足給定pattern所key
randomkey:隨機返key空間key
rename(oldname, newname):key由oldname重命名newname若newname存則刪除newname表示key
dbsize:返前資料庫key數目
expire:設定key間(s)
ttl:獲key間
select(index):按索引查詢
move(key, dbindex):前資料庫key轉移dbindex索引資料庫
flushdb:刪除前選擇資料庫所key
flushall:刪除所資料庫所key
3、String操作命令
set(key, value):給資料庫名稱keystring賦予值value
get(key):返資料庫名稱keystringvalue
getset(key, value):給名稱keystring賦予value
mget(key1, key2,…, key N):返庫string(名稱key1key2…)value
setnx(key, value):存名稱keystring則向庫添加string名稱key值value
setex(key, time, value):向庫添加string(名稱key值value)同設定期間time
mset(key1, value1, key2, value2,…key N, value N):同給string賦值名稱key istring賦值value i
msetnx(key1, value1, key2, value2,…key N, value N):所名稱key istring都存則向庫添加string
名稱key i賦值value i
incr(key):名稱keystring增1操作
incrby(key, integer):名稱keystring增加integer
decr(key):名稱keystring減1操作
decrby(key, integer):名稱keystring減少integer
append(key, value):名稱keystring值附加value
substr(key, start, end):返名稱keystringvalue串
4、List操作命令
rpush(key, value):名稱keylist尾添加值value元素
lpush(key, value):名稱keylist添加值value 元素
llen(key):返名稱keylist度
lrange(key, start, end):返名稱keyliststart至end間元素(標0始同)
ltrim(key, start, end):截取名稱keylist保留start至end間元素
lindex(key, index):返名稱keylistindex位置元素
lset(key, index, value):給名稱keylistindex位置元素賦值value
lrem(key, count, value):刪除count名稱keylist值value元素
count0刪除所值value元素count>0至尾刪除count值value元素count<0尾刪除|count|值value元素
lpop(key):返並刪除名稱keylist首元素 rpop(key):返並刪除名稱keylist尾元素
blpop(key1, key2,… key N, timeout):lpop命令block版本
即timeout0若遇名稱key ilist存或該list空則命令結束
timeout>0則遇述情況等待timeout秒問題沒解決則keyi+1始list執行pop操作
brpop(key1, key2,… key N, timeout):rpopblock版本參考命令
rpoplpush(srckey, dstkey):返並刪除名稱srckeylist尾元素並該元素添加名稱dstkeylist部
5、Set操作命令
sadd(key, member):向名稱keyset添加元素member
srem(key, member) :刪除名稱keyset元素member
spop(key) :隨機返並刪除名稱keyset元素
smove(srckey, dstkey, member) :member元素名稱srckey集合移名稱dstkey集合
scard(key) :返名稱keyset基數
sismember(key, member) :測試member否名稱keyset元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, key1, key2,…key N) :求交集並交集保存dstkey集合
sunion(key1, key2,…key N) :求並集
sunionstore(dstkey, key1, key2,…key N) :求並集並並集保存dstkey集合
sdiff(key1, key2,…key N) :求差集
sdiffstore(dstkey, key1, key2,…key N) :求差集並差集保存dstkey集合
smembers(key) :返名稱keyset所元素
srandmember(key) :隨機返名稱keyset元素
6、zset(sorted set)操作命令
zadd(key, score, member):向名稱keyzset添加元素memberscore用於排序該元素已經存則根據score更新該元素順序
zrem(key, member) :刪除名稱keyzset元素member
zincrby(key, increment, member) :名稱keyzset已經存元素member則該元素score增加increment;
否則向集合添加該元素其score值increment
zrank(key, member) :返名稱keyzset(元素已按score排序)member元素rank(即index0始)
若沒member元素返nil
zrevrank(key, member) :返名稱keyzset(元素已按score排序)member元素rank(即index0始)
若沒member元素返nil
zrange(key, start, end):返名稱keyzset(元素已按score排序)indexstartend所元素
zrevrange(key, start, end):返名稱keyzset(元素已按score排序)indexstartend所元素
zrangebyscore(key, min, max):返名稱keyzsetscore >= min且score <= max所元素
zcard(key):返名稱keyzset基數 zscore(key, element):返名稱keyzset元素element
score zremrangebyrank(key, min, max):刪除名稱keyzsetrank >= min且rank <= max所元素
zremrangebyscore(key, min, max) :刪除名稱keyzsetscore >= min且score <= max所元素
zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):Nzset求並集交集
並集合保存dstkeyN於集合每元素score進行AGGREGATE運算前都要乘於WEIGHT參數
沒提供WEIGHT默認1默認AGGREGATESUM即結集合元素score所集合應元素進行SUM運算值MINMAX指
結集合元素score所集合應元素值值
7、Hash操作命令
hset(key, field, value):向名稱keyhash添加元素fieldvalue
hget(key, field):返名稱keyhashfield應value
hmget(key, field1, …,field N):返名稱keyhashfield i應value
hmset(key, field1, value1,…,field N, value N):向名稱keyhash添加元素field ivalue i
hincrby(key, field, integer):名稱keyhashfieldvalue增加integer
hexists(key, field):名稱keyhash否存鍵field域
hdel(key, field):刪除名稱keyhash鍵field域
hlen(key):返名稱keyhash元素數
hkeys(key):返名稱keyhash所鍵
hvals(key):返名稱keyhash所鍵應value
hgetall(key):返名稱keyhash所鍵(field)及其應value
8、持久化
save:數據同步保存磁碟
bgsave:數據非同步保存磁碟
lastsave:返功數據保存磁碟Unix戳
shundown:數據同步保存磁碟關閉服務
9、遠程服務控制
info:提供伺服器信息統計
monitor:實轉儲收請求
slaveof:改變復制策略設置
config:運行配置Redis伺服器