這篇文章主要介紹redis基本類型和使用方法的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司專注于內(nèi)丘網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供內(nèi)丘營(yíng)銷型網(wǎng)站建設(shè),內(nèi)丘網(wǎng)站制作、內(nèi)丘網(wǎng)頁設(shè)計(jì)、內(nèi)丘網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造內(nèi)丘網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供內(nèi)丘網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
redis存儲(chǔ)數(shù)據(jù)的基本類型有:string(字符串類型)、hash(散列類型)、list(列表類型)、set(集合類型)、zset(有序集合類型)。
依次做一些練習(xí)。redis命令不區(qū)分大小寫。
127.0.0.1:6379> set key hello ## 設(shè)置 OK 127.0.0.1:6379> set key1 world OK 127.0.0.1:6379> keys ke* ## keys查詢鍵名 1) "key1" 2) "key" 127.0.0.1:6379> del key1 ## 刪除鍵值對(duì) (integer) 1 127.0.0.1:6379> exists key ##查詢鍵名是否存在 (integer) 1 ##存在返回1 127.0.0.1:6379> exists key1 (integer) 0 ##不存在返回0 127.0.0.1:6379> type key ##查詢鍵值的類型 string
127.0.0.1:6379> exists num (integer) 0 127.0.0.1:6379> incr num ##incr一個(gè)不存在的值,先創(chuàng)建新值,賦值為0,再自增1.院子操作。 對(duì)應(yīng)的是decr (integer) 1 127.0.0.1:6379> set key hello OK 127.0.0.1:6379> incr key ##無法對(duì)string自增 (error) ERR value is not an integer or out of range 127.0.0.1:6379> incrby num 3 ##increby增加指定的數(shù)值,對(duì)應(yīng)的是decrby (integer) 4 127.0.0.1:6379> incrbyfloat num 0.7 ##增加浮點(diǎn)數(shù) "4.7" 127.0.0.1:6379> append key " world!" ##append追加字符 (integer) 12 127.0.0.1:6379> get key "hello world!" 127.0.0.1:6379> strlen key ##strlen字符串長(zhǎng)度 (integer) 12 127.0.0.1:6379> mget key num ## mget批量獲取鍵值 1) "hello world!" 2) "4.7" 127.0.0.1:6379> mset key hi num 5.5 ##mset批量設(shè)置 OK 127.0.0.1:6379> mget key num 1) "hi" 2) "5.5" 127.0.0.1:6379> set foo bar OK 127.0.0.1:6379> getbit foo 1 ##getbit獲取某一位二進(jìn)制數(shù)值 (integer) 1 127.0.0.1:6379> setbit foo 22 0 ##設(shè)置修改位值 (integer) 1 127.0.0.1:6379> get foo ##修改成功 "bap" 127.0.0.1:6379> set foo bar OK 127.0.0.1:6379> set foo1 aar OK 127.0.0.1:6379> bitop or result foo foo1 ##bitop位操作 (integer) 3 127.0.0.1:6379> get result "car"
GETBIT key offset
SETBIT key offset value
BITCOUNT key [start] [end] 獲取鍵值中值為1的二進(jìn)制位個(gè)數(shù),start和end表示字節(jié)位置
BITOP operation destkey key [key...] 對(duì)多個(gè)鍵值進(jìn)行位運(yùn)算,并將結(jié)果存儲(chǔ)在destkey對(duì)應(yīng)的鍵值中。支持的操作:AND、 OR、 XOR、 NOT。
GETSET key newValue 原子操作,設(shè)置新值,返回原來的值。如果原值不存在,返回nil。
SETEX key seconds value 設(shè)置鍵值對(duì)的失效時(shí)間是seconds秒。
SETNX key value put if absent, or do nothing。
SETRANGE key offset value 從index等于offset位置起,替換length(value)個(gè)字符,替換為value。如果offset超出范圍,則中間補(bǔ)充0x00。
GETRANGE key start end 獲取指定返回的字符串,閉區(qū)間。end超過長(zhǎng)度,則取到字符串末尾。
MGET key [key ... ]
MSET key value [key value ... ]
MSETNX key value [key value ... ] 原子操作。如果在這一批Keys中有任意一個(gè)Key已經(jīng)存在了,那么該操作將全部回滾,即所有的修改都不會(huì)生效。1表示全部設(shè)置成功;0表示都沒有設(shè)置。
127.0.0.1:6379> getset foo hi ##設(shè)置新值,返回舊值nil (nil) 127.0.0.1:6379> get foo "hi" 127.0.0.1:6379> setex foo 2 hello ##設(shè)置鍵值對(duì),2秒失效 OK 127.0.0.1:6379> get foo ##沒失效時(shí),返回值 "hello" 127.0.0.1:6379> get foo ##失效之后,返回nil (nil) 127.0.0.1:6379> set foo hello OK 127.0.0.1:6379> setrange foo 1 appy ##替換index=1之后的字符串 (integer) 5 127.0.0.1:6379> get foo "happy" 127.0.0.1:6379> setrange foo 1 ee (integer) 5 ##返回修改后的長(zhǎng)度 127.0.0.1:6379> get foo ##替換兩個(gè)字符 "heepy" 127.0.0.1:6379> setrange foo 8 day (integer) 11 127.0.0.1:6379> get foo "heepy\x00\x00\x00day" 127.0.0.1:6379> get bar (nil) 127.0.0.1:6379> setrange bar 2 ee ##bar的值為nil,補(bǔ)充兩個(gè)0x00 (integer) 4 127.0.0.1:6379> get bar "\x00\x00ee" 127.0.0.1:6379> set key1 hello OK 127.0.0.1:6379> msetnx key1 hi key2 hi ##key2不存在,不修改 (integer) 0 127.0.0.1:6379> mget key1 key2 ## key2依然為nil 1) "hello" 2) (nil)
HSET key field value
HGET key field
HMSET key field value [field value ... ]
HMGET key field [field ...]
HGETALL key
HEXISTS key field
HSETNX key field value 字段不存在時(shí)賦值。 與HSET類型,區(qū)別在于,如果字段存在,HSETNX不執(zhí)行任何操作。
HINCRBY key filed increment 如果key、field不存在,自動(dòng)創(chuàng)建,鍵值為0,再增值。
HDEL key field [field...] 這是刪除的是key:field,不能直接刪除key。如果要?jiǎng)h除key,使用DEL命令。
HEYS key 只獲取字段名
HVALS key 只獲取字段值
HLEN key 獲得字段數(shù)量
127.0.0.1:6379> HMSET g1class1 xiaoming 001 xiaohong 002 tom 003 hanmeimei 004 OK 127.0.0.1:6379> HGETALL g1class1 1) "xiaoming" 2) "001" 3) "xiaohong" 4) "002" 5) "tom" 6) "003" 7) "hanmeimei" 8) "004" 127.0.0.1:6379> HKEYS g1class1 1) "xiaoming" 2) "xiaohong" 3) "tom" 4) "hanmeimei" 127.0.0.1:6379> HLEN g1class1 (integer) 4 127.0.0.1:6379> HGET g1class1 xiaohong "002" 127.0.0.1:6379> HSET g1class1 lilei 005 ##het新值時(shí),返回1 (integer) 1 127.0.0.1:6379> hset g1class1 xiaohong 007 ## hset更新值時(shí),返回0 (integer) 0 127.0.0.1:6379> hsetnx g1class1 tom 008 ##已存在的值,不操作 (integer) 0 127.0.0.1:6379> hget g1class1 tom ##已存在的值,更新不生效,還是003 "003" 127.0.0.1:6379> hdel g1class1 ##不能直接刪除key (error) ERR wrong number of arguments for 'hdel' command 127.0.0.1:6379> DEL g1class1 ##使用DEL刪除key (integer) 1 127.0.0.1:6379> hgetall g1class1 ##查詢?yōu)榭? (empty list or set)
用來存儲(chǔ)分級(jí)數(shù)據(jù)。外部key作為prefix,是第一級(jí)key,hash中的key作為第二級(jí)key使用。
存儲(chǔ)含有多個(gè)屬性的對(duì)象,如一篇博客的各種屬性:標(biāo)題,標(biāo)簽,分類等。修改某個(gè)屬性,不用操作整個(gè)博客內(nèi)容。
redis列表類型內(nèi)部是使用雙向列表實(shí)現(xiàn)的,所以可以向/從兩端添加/刪除元素。
LPUSH key value [value ...] 從左側(cè)添加元素,如果key不存在,初始化一個(gè)空列表,再添加。返回插入后,鏈表的個(gè)數(shù)。
LPUSHX key value 僅當(dāng)指定的Key存在時(shí),才在列表的左邊插入Value,否則將不會(huì)有任何操作發(fā)生。返回插入后,鏈表的個(gè)數(shù)。
RPUSH key value [value ...] 從右側(cè)添加元素
RPUSHX key value 僅當(dāng)指定的Key存在時(shí),才在列表的右邊插入Value,否則將不會(huì)有任何操作發(fā)生。返回插入后,鏈表的個(gè)數(shù)。
LPOP key 從兩端彈出元素
RPOP key
LLEN key 獲取列表中元素個(gè)數(shù)
LRANGE key start end 獲取列表片段,左邊在前,右邊在后。起始索引為0,最右邊元素索引可以為-1,右邊第二個(gè)索引可以為-2,以此類推。。。索引從左到右,如果start比end靠右,則返回空列表。end值可以大于長(zhǎng)度范圍。
LREM key count value 從左邊(count > 0)開始,刪除前count個(gè)值為value的元素;從右邊(count < 0)開始,刪除前|count|個(gè)值為value的元素 ; 刪除所有值為value的元素(count = 0)。返回實(shí)際刪除元素的個(gè)數(shù)。
LINDEX key index 獲取指定索引的元素值
LSET key index value 設(shè)置指定索引的元素值
LTRIM key start end 刪除指定索引范圍之外的所有元素。start和end的規(guī)則與lrange的相同。
LINSERT key BEFORE|AFTER pivot value 從左到右查找pivot,將value插在其前面(BEFORE)或者后面(AFTER)。 返回插入后,元素總個(gè)數(shù)。
RPOPLPUSH source destination 刪除source最右邊的元素,插入到destination最左邊。返回操作的元素。
127.0.0.1:6379> lpush num 1 2 ## 先push 1,再push 2 (integer) 2 127.0.0.1:6379> rpush num 3 4 ##先push 3,再push 4 (integer) 4 127.0.0.1:6379> lrange num 0 -1 ##從0開始,顯示4個(gè)元素 1) "2" 2) "1" 3) "3" 4) "4" 127.0.0.1:6379> llen num (integer) 4 127.0.0.1:6379> lrange num -1 -2 ##start比end靠右,返回空列表 (empty list or set) 127.0.0.1:6379> lrange num -2 -1 ##從右邊第二到右邊第一 1) "3" 2) "4" 127.0.0.1:6379> lpush num 3 4 3 (integer) 7 127.0.0.1:6379> lrange num 0 -1 1) "3" 2) "4" 3) "3" 4) "2" 5) "1" 6) "3" 7) "4" 127.0.0.1:6379> lrem num 2 3 (integer) 2 ## 一共刪除了兩個(gè) 127.0.0.1:6379> lrange num 0 -1 1) "4" 2) "2" 3) "1" 4) "3" 5) "4" 127.0.0.1:6379> 127.0.0.1:6379> lrem num 0 4 ##刪除所有值為4元素 (integer) 2 ## 一共刪除了兩個(gè) 127.0.0.1:6379> lrange num 0 -1 1) "2" 2) "1" 3) "3" 127.0.0.1:6379> lrem num 2 3 (integer) 1 ##只刪除了一個(gè)元素 127.0.0.1:6379> lrange num 0 -1 1) "2" 2) "1" 127.0.0.1:6379> lpush num 1 3 (integer) 4 127.0.0.1:6379> linsert num BEFORE 1 4 ##將4插入左邊第一個(gè)1的前面 (integer) 5 ##插入后,一共有5個(gè)元素 127.0.0.1:6379> lrange num 0 -1 1) "3" 2) "4" 3) "1" 4) "2" 5) "1" 127.0.0.1:6379> rpoplpush num num1 ##轉(zhuǎn)移一個(gè)元素 "1" 127.0.0.1:6379> lrange num1 0 -1 1) "1" 127.0.0.1:6379> rpoplpush num num1 "2" 127.0.0.1:6379> lrange num1 0 -1 1) "2" 2) "1" 127.0.0.1:6379> lrange num 0 -1 ##num中轉(zhuǎn)移走了2個(gè)元素 1) "3" 2) "4" 3) "1" 127.0.0.1:6379> lpushx num 5 ##鍵名num存在,push成功 (integer) 4 127.0.0.1:6379> lrange num2 0 -1 (empty list or set) 127.0.0.1:6379> lpushx num2 1 ##鍵名num2不存在,push失敗 (integer) 0 127.0.0.1:6379> lrange num2 0 -1 (empty list or set)
列表頁
redis的set使用值為空的散列表(hash table)實(shí)現(xiàn)。
SADD key member [member ...] 加入set中不存在的元素;返回成功加入的值的個(gè)數(shù)
SREM key member [member ... ] 刪除set中存在的元素;返回成功刪除的個(gè)數(shù)
SPOP key 隨機(jī)選取一個(gè)元素,彈出并返回。如果key不存在,返回nil。
SMEMBERS key 獲取所有元素
SISMEMBER key member 判斷元素是否在集合中,存在返回1;key或者member不存在,返回0。
SCARD key 獲取元素個(gè)數(shù)
SDIFF key1 [key2 ... ] 集合求差集,key1中存在,key2中不存在的
SINTER key [key ... ] 集合求交集
SUNION key [key ... ] 集合求并集
SDIFFSTORE destination key1 [key2 ... ] 集合求差集,并存入destination中。
SINTERSTORE destination key [key ... ] 集合求交集,并存入destination中。
SUNIONSTORE destination key [key ... ] 集合求并集,并存入destination中。
SRANDMEMBER key [count] 隨機(jī)選取count個(gè)元素,不帶參數(shù)count時(shí),選取一個(gè)。count=0,返回空列表;count > 0,選擇min(count, scard)個(gè)數(shù)據(jù),且不重復(fù),最多返回所有元素; count < 0 選擇|count|個(gè)元素,有可能重復(fù)。
SMOVE source destination member 原子性的將參數(shù)中的成員從source鍵移入到destination鍵所關(guān)聯(lián)的Set中。因此在某一時(shí)刻,該成員或者出現(xiàn)在source中,或者出現(xiàn)在destination中。如果該成員在source中并不存在,該命令將不會(huì)再執(zhí)行任何操作并返回0,否則,該成員將從source移入到destination。如果此時(shí)該成員已經(jīng)在destination中存在,那么該命令僅是將該成員從source中移出。如果和Key關(guān)聯(lián)的Value不是Set,將返回相關(guān)的錯(cuò)誤信息。返回1表示正常移動(dòng),0表示source中并不包含參數(shù)成員。
127.0.0.1:6379> sadd set1 a b ##添加兩個(gè)不存在的元素 (integer) 2 127.0.0.1:6379> sadd set1 a c ##添加成功一個(gè)元素c (integer) 1 127.0.0.1:6379> smembers set1 ##獲取所有元素 1) "c" 2) "b" 3) "a" 127.0.0.1:6379> srem set1 d b ##刪除成功一個(gè)元素 (integer) 1 127.0.0.1:6379> smembers set1 1) "c" 2) "a" 127.0.0.1:6379> sismember set1 a (integer) 1 127.0.0.1:6379> sadd set1 b (integer) 1 127.0.0.1:6379> sadd set2 a d e (integer) 3 127.0.0.1:6379> sadd set3 c h j (integer) 3 127.0.0.1:6379> sdiff set1 set2 set3 ##求差集,在set1中,同時(shí)不在set2,set3中的元素 1) "b" 127.0.0.1:6379> scard set1 (integer) 3 127.0.0.1:6379> sdiffstore set4 set1 set2 set3 (integer) 1 127.0.0.1:6379> smembers set4 1) "b" 127.0.0.1:6379> srandmember set1 0 (empty list or set) 127.0.0.1:6379> srandmember set1 1 1) "c" 127.0.0.1:6379> srandmember set1 2 1) "a" 2) "b" 127.0.0.1:6379> srandmember set1 5 ##返回min(5, 3)個(gè)元素,且不重復(fù) 1) "c" 2) "a" 3) "b" 127.0.0.1:6379> srandmember set1 -5 ## 返回5個(gè)元素,可能重復(fù) 1) "a" 2) "b" 3) "c" 4) "c" 5) "c" 127.0.0.1:6379> spop set1 "c" 127.0.0.1:6379> smembers set1 1) "b" 2) "a" 127.0.0.1:6379> smembers set2 1) "d" 2) "a" 3) "e" 127.0.0.1:6379> smove set2 set1 c ##source中不含移動(dòng)的元素,不操作 (integer) 0 127.0.0.1:6379> smove set2 set1 e ##移動(dòng)一個(gè)元素到另一個(gè)集合 (integer) 1 127.0.0.1:6379> smembers set2 1) "d" 2) "a" 127.0.0.1:6379> smembers set1 1) "b" 2) "a" 3) "e"
唯一性數(shù)據(jù)集合,如某用戶訪問了哪些店鋪等。
集合相關(guān)場(chǎng)景。每個(gè)店鋪的訪問用戶是一個(gè)set,查找同時(shí)訪問多個(gè)店鋪的用戶群,查找訪問一類店鋪的用戶群等。
有序集合為每一個(gè)元素關(guān)聯(lián)一個(gè)分?jǐn)?shù),并按照分?jǐn)?shù)進(jìn)行排序。 雖然集合中的每個(gè)元素都是不相同的,但是它們的分?jǐn)?shù)卻可以相同。
ZADD key score member [score member ... ] 添加新元素,如果元素已經(jīng)存在,則更新分?jǐn)?shù)。score支持整型和雙精度浮點(diǎn)型。返回新添加的元素的個(gè)數(shù)(更新分?jǐn)?shù)的不算)。inf和-inf分別表示正無窮和負(fù)無窮。
ZINCRBY key increment member 增加一個(gè)元素的分?jǐn)?shù),increment可以是負(fù)數(shù)。
ZSCORE key member 查詢?cè)氐姆謹(jǐn)?shù)
ZCARD key 獲取集合中元素的個(gè)數(shù)
ZCOUNT key min max 指定分?jǐn)?shù)范圍內(nèi)元素的個(gè)數(shù),支持開閉區(qū)間。
ZRANGE key start end [WITHSCORES] 按照分?jǐn)?shù)從小到大排序,獲取排名在某個(gè)范圍的元素列表,分?jǐn)?shù)可選。閉區(qū)間,end可為負(fù)數(shù),與lrange參數(shù)要求一致。
ZREVRANGE key start end [WITHSCORES] 按照分?jǐn)?shù)從大到小排序。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count ] 按分?jǐn)?shù)從小到大順序,返回分?jǐn)?shù)在閉區(qū)間[min,max]的元素??梢灾付ㄩ_區(qū)間,在min前面加上"(",則表示(min, max]。支持inf和-inf。 offset和count指,在獲得的元素列表的基礎(chǔ)上,向后偏移offset個(gè)元素,并且只獲取前count個(gè)元素。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count ] 按分?jǐn)?shù)從大到小順序,返回分?jǐn)?shù)在閉區(qū)間[min,max]的元素。注意max和min的參數(shù)位置。
ZREM key member [member ... ] 刪除一個(gè)或者多個(gè)元素
ZREMRANGEBYRANK key start end 按照范圍排名刪除元素,閉區(qū)間。索引從0開始。
ZREMRANGEBYSCORE key min max 按照分?jǐn)?shù)排名,刪除分?jǐn)?shù)在[min,max]的元素,支持開區(qū)間。
ZRANK key member 按分?jǐn)?shù)從小到大排序,獲取元素member的排名,分?jǐn)?shù)最小的排名是0
ZREVRANK key member 按分?jǐn)?shù)從大到小排序,獲取元素member的排名,分?jǐn)?shù)最大的排名是0
ZINTERSTORE destination numkeys key [key ... ] [WEIGHTS weight [weight ... ]] [AGGREGATE SUM|MIN|MAX] 計(jì)算numkeys個(gè)有序集合的交集,存儲(chǔ)在有序集合destination里面,返回destination的元素個(gè)數(shù)。
WEIGHTS參數(shù)設(shè)置每個(gè)集合的權(quán)重,每個(gè)集合在參與計(jì)算時(shí),元素的分?jǐn)?shù)會(huì)被乘上該集合的權(quán)重。
AGGREGATE表示destination中元素分?jǐn)?shù)的計(jì)算方式:
AGGREGATE為SUM(默認(rèn)值)時(shí),則destination中元素的分?jǐn)?shù),是每個(gè)參與計(jì)算的集合中該元素分?jǐn)?shù)的和。
AGGREGATE為MAX時(shí),則destination中元素的分?jǐn)?shù),是每個(gè)參與計(jì)算的集合中該元素分?jǐn)?shù)的最大值。
AGGREGATE為MIN時(shí),則destination中元素的分?jǐn)?shù),是每個(gè)參與計(jì)算的集合中該元素分?jǐn)?shù)的最小值。
ZUNIONSTORE destination numkeys key [key ... ] [WEIGHTS weight [weight ... ]] [AGGREGATE SUM|MIN|MAX] 與上面類似。
127.0.0.1:6379> zadd zset1 10 sh 40 bj ##添加2個(gè)元素 (integer) 2 127.0.0.1:6379> zadd zset1 20 sh 50 hz 80 cd ##更新1個(gè),添加2個(gè) (integer) 2 127.0.0.1:6379> zscore zset1 sh ##獲取sh的分?jǐn)?shù),已更新為20 "20" 127.0.0.1:6379> zrange zset1 1 -1 ##從第二個(gè)元素開始的所有元素 1) "bj" 2) "hz" 3) "cd" 127.0.0.1:6379> zrange zset1 0 -1 withscores ##獲取全部元素 1) "sh" 2) "20" 3) "bj" 4) "40" 5) "hz" 6) "50" 7) "cd" 8) "80" 127.0.0.1:6379> zadd zset1 inf zy ##添加正無窮 (integer) 1 127.0.0.1:6379> zrangebyscore zset1 (50 inf withscores ## 分?jǐn)?shù)大于50的元素 1) "cd" 2) "80" 3) "zy" 4) "inf" 127.0.0.1:6379> zrangebyscore zset1 50 inf withscores limit 1 2 ## 分?jǐn)?shù)大于等于50的元素,從第二個(gè)開始,取2個(gè) 1) "cd" 2) "80" 3) "zy" 4) "inf" 127.0.0.1:6379> zincrby zset1 5 hz ## 給元素hz加5分 "55" 127.0.0.1:6379> zrangebyscore zset1 (50 inf ## 添加成功 1) "hz" 2) "cd" 3) "zy" 127.0.0.1:6379> zrange zset1 0 -1 WITHSCORES ##查詢所有元素 1) "sh" 2) "20" 3) "bj" 4) "40" 5) "hz" 6) "55" 7) "cd" 8) "80" 9) "zy" 10) "inf" 127.0.0.1:6379> zcount zset1 0 inf ##獲取元素個(gè)數(shù) (integer) 5 127.0.0.1:6379> zcount zset1 (55 inf ##大于55元素個(gè)數(shù) (integer) 2 127.0.0.1:6379> zrem zset1 zy ##刪除zy (integer) 1 127.0.0.1:6379> zrange zset1 0 -1 ## 剩下四個(gè) 1) "sh" 2) "bj" 3) "hz" 4) "cd" 127.0.0.1:6379> zremrangebyrank zset1 1 2 ## 按照排名,刪除第2名到第3名 (integer) 2 127.0.0.1:6379> zrange zset1 0 -1 ## 只剩下2個(gè) 1) "sh" 2) "cd" 127.0.0.1:6379> zadd zs1 1 a 2 b (integer) 2 127.0.0.1:6379> zadd zs2 10 a 20 b (integer) 2 ## zs1和zs2取交集,zs1的權(quán)重為1,zs2的權(quán)重為0.5,所以a的結(jié)果分?jǐn)?shù)是1+10*0.5=6 127.0.0.1:6379> zinterstore zs3 2 zs1 zs2 WEIGHTS 1 0.5 AGGREGATE sum (integer) 2 127.0.0.1:6379> zrange zs3 0 -1 withscores 1) "a" 2) "6" 3) "b" 4) "12"
排序的場(chǎng)景。如按照博客訪問量排序文章列表。key是用戶id,set中的數(shù)據(jù)是文章id,每個(gè)文章id關(guān)聯(lián)一個(gè)score(訪問量)。
都可以獲取某一范圍的元素
列表類型通過鏈表實(shí)現(xiàn),獲取兩端數(shù)據(jù)速度快,元素增多后,訪問中間數(shù)據(jù)速度較慢。所以適合“新鮮事”和“日志”一類的場(chǎng)景。
有序集合是通過散列表和跳躍表實(shí)現(xiàn)的,所以讀取位于中間部分的數(shù)據(jù)的速度也很快。時(shí)間復(fù)雜度O(log(N))。
列表不能簡(jiǎn)單的調(diào)整某個(gè)元素的位置,有序集合可以。(修改元素的分?jǐn)?shù))
以上是“redis基本類型和使用方法的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章名稱:redis基本類型和使用方法的示例分析
文章網(wǎng)址:http://jinyejixie.com/article10/peoddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、企業(yè)網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣、營(yíng)銷型網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)