redis 基礎(chǔ)應(yīng)用(一)
創(chuàng)新互聯(lián)擁有網(wǎng)站維護(hù)技術(shù)和項目管理團(tuán)隊,建立的售前、實施和售后服務(wù)體系,為客戶提供定制化的成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)站維護(hù)、重慶服務(wù)器托管解決方案。為客戶網(wǎng)站安全和日常運維提供整體管家式外包優(yōu)質(zhì)服務(wù)。我們的網(wǎng)站維護(hù)服務(wù)覆蓋集團(tuán)企業(yè)、上市公司、外企網(wǎng)站、商城開發(fā)、政府網(wǎng)站等各類型客戶群體,為全球上千余家企業(yè)提供全方位網(wǎng)站維護(hù)、服務(wù)器維護(hù)解決方案。
==============================================================================
概述:
Redis的相關(guān)介紹,功能,優(yōu)勢及于其他key-value數(shù)據(jù)庫的對比;
Redis的安裝及程序環(huán)境;
命令行客戶端命令
Redis 的數(shù)據(jù)結(jié)構(gòu)
==============================================================================
1.簡介
★Redis
REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的 key-value存儲系統(tǒng)。
Redis是一個開源的使用ANSI C語言編寫、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。
它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因為值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
☉REmote DIctionary Server(Redis)
內(nèi)存存儲;
持久化;
主從;
Cluster
☉Redis 與其他 key - value 緩存產(chǎn)品有以下三個特點:
Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時候可以再次加載進(jìn)行使用。
Redis不僅僅支持簡單的key-value類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。
Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。
2.功能
★支持的功能如下:
☉數(shù)據(jù)結(jié)構(gòu)服務(wù)器:
值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
☉單進(jìn)程
CPU 并非瓶頸
☉持久化機制
snapshoting
AOF
☉Replication
主從:
主:rw
從:read-only
3.優(yōu)勢
★優(yōu)勢
性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
豐富的數(shù)據(jù)類型– Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類型操作
原子 – Redis的所有操作都是原子性的,同時Redis還支持對幾個操作全并后的原子性執(zhí)行。
豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性。
4.Redis與其他key-value存儲有什么不同
★區(qū)別:
Redis有著更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu)并且提供對他們的原子性操作,這是一個不同于其他數(shù)據(jù)庫的進(jìn)化路徑。Redis的數(shù)據(jù)類型都是基于基本數(shù)據(jù)結(jié)構(gòu)的同時對程序員透明,無需進(jìn)行額外的抽象。
Redis運行在內(nèi)存中但是可以持久化到磁盤,所以在對不同數(shù)據(jù)集進(jìn)行高速讀寫時需要權(quán)衡內(nèi)存,因為數(shù)據(jù)量不能大于硬件內(nèi)存。在內(nèi)存數(shù)據(jù)庫方面的另一個優(yōu)點是,相比在磁盤上相同的復(fù)雜的數(shù)據(jù)結(jié)構(gòu),在內(nèi)存中操作起來非常簡單,這樣Redis可以做很多內(nèi)部復(fù)雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產(chǎn)生的,因為他們并不需要進(jìn)行隨機訪問。
★和memcached的區(qū)別
Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set,hash等數(shù)據(jù)結(jié)構(gòu)的存儲。memcache僅支持字符串型值(流式化數(shù)據(jù))
Redis為單線程,Memcached為多線程,但性能上相當(dāng);
Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。
Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中,重啟的時候可以再次加載進(jìn)行使用。(在Redis中,并不是所有的數(shù)據(jù)都一直存儲在內(nèi)存中的。這是和Memcached相比一個最大的區(qū)別)
應(yīng)用場景不一樣:Redis出來作為NoSql數(shù)據(jù)庫使用外,還能用做消息隊列、數(shù)據(jù)堆棧和數(shù)據(jù)緩存等;Memcached適合于緩存SQL語句、數(shù)據(jù)集、用戶臨時性數(shù)據(jù)、延遲查詢數(shù)據(jù)和session等。
★redis、memcache、MongoDB 對比
從以下幾個維度,對redis、memcache、mongoDB 做了對比,歡迎拍磚
☉性能
都比較高,性能對我們來說應(yīng)該都不是瓶頸
總體來講,TPS方面redis和memcache差不多,要大于mongodb
☉操作的便利性
memcache數(shù)據(jù)結(jié)構(gòu)單一
redis豐富一些,數(shù)據(jù)操作方面,redis更好一些,較少的網(wǎng)絡(luò)IO次數(shù)
mongodb支持豐富的數(shù)據(jù)表達(dá),索引,最類似關(guān)系型數(shù)據(jù)庫,支持的查詢語言非常豐富
☉內(nèi)存空間的大小和數(shù)據(jù)量的大小
redis在2.0版本后增加了自己的VM特性,突破物理內(nèi)存的限制;可以對key value設(shè)置過期時間(類似memcache)
memcache可以修改最大可用內(nèi)存,采用LRU算法
mongoDB適合大數(shù)據(jù)量的存儲,依賴操作系統(tǒng)VM做內(nèi)存管理,吃內(nèi)存也比較厲害,服務(wù)不要和別的服務(wù)在一起
☉可用性(單點問題)
對于單點問題
redis,依賴客戶端來實現(xiàn)分布式讀寫;主從復(fù)制時,每次從節(jié)點重新連接主節(jié)點都要依賴整個快照,無增量復(fù)制,因性能和效率問題,
所以單點問題比較復(fù)雜;不支持自動sharding,需要依賴程序設(shè)定一致hash 機制。
一種替代方案是,不用redis本身的復(fù)制機制,采用自己做主動復(fù)制(多份存儲),或者改成增量復(fù)制的方式(需要自己實現(xiàn)),一致性問題和性能的權(quán)衡Memcache本身沒有數(shù)據(jù)冗余機制,也沒必要;對于故障預(yù)防,采用依賴成熟的hash或者環(huán)狀的算法,解決單點故障引起的抖動問題。
mongoDB支持master-slave,replicaset(內(nèi)部采用paxos選舉算法,自動故障恢復(fù)),auto sharding機制,對客戶端屏蔽了故障轉(zhuǎn)移和切分機制。
☉可靠性(持久化)
對于數(shù)據(jù)持久化和數(shù)據(jù)恢復(fù),
redis支持(快照、AOF):依賴快照進(jìn)行持久化,aof增強了可靠性的同時,對性能有所影響
memcache不支持,通常用在做緩存,提升性能;
MongoDB從1.8版本開始采用binlog方式支持持久化的可靠性
☉數(shù)據(jù)一致性(事務(wù)支持)
Memcache 在并發(fā)場景下,用cas保證一致性
redis事務(wù)支持比較弱,只能保證事務(wù)中的每個操作連續(xù)執(zhí)行
mongoDB不支持事務(wù)
☉數(shù)據(jù)分析
mongoDB內(nèi)置了數(shù)據(jù)分析的功能(mapreduce),其他不支持
☉應(yīng)用場景
redis:數(shù)據(jù)量較小的更性能操作和運算上
memcache:用于在動態(tài)系統(tǒng)中減少數(shù)據(jù)庫負(fù)載,提升性能;做緩存,提高性能(適合讀多寫少,對于數(shù)據(jù)量比較大,可以采用sharding)
MongoDB:主要解決海量數(shù)據(jù)的訪問效率問題
1.安裝及程序環(huán)境
★安裝方法:
編譯安裝
rpm包安裝
★程序環(huán)境
☉配置文件
/etc/redis.conf
/etc/redis-sentinel.conf
☉主程序
/usr/bin/redis-server
/usr/bin/redis-sentinel
監(jiān)聽端口:6379/tcp
☉命令行客戶端
/usr/bin/redis-cli
演示:
1.安裝程序包
# 配置好epel倉庫 [root@centos7 ~]# yum install redis
2.程序環(huán)境如下:
[root@centos7 ~]# rpm -ql redis /etc/logrotate.d/redis /etc/redis-sentinel.conf /etc/redis.conf /etc/systemd/system/redis-sentinel.service.d /etc/systemd/system/redis-sentinel.service.d/limit.conf /etc/systemd/system/redis.service.d /etc/systemd/system/redis.service.d/limit.conf /usr/bin/redis-benchmark /usr/bin/redis-check-aof /usr/bin/redis-check-rdb /usr/bin/redis-cli /usr/bin/redis-sentinel /usr/bin/redis-server /usr/bin/redis-shutdown /usr/lib/systemd/system/redis-sentinel.service /usr/lib/systemd/system/redis.service /usr/lib/tmpfiles.d/redis.conf /usr/share/doc/redis-3.2.3 /usr/share/doc/redis-3.2.3/00-RELEASENOTES /usr/share/doc/redis-3.2.3/BUGS /usr/share/doc/redis-3.2.3/CONTRIBUTING /usr/share/doc/redis-3.2.3/MANIFESTO /usr/share/doc/redis-3.2.3/README.md /usr/share/licenses/redis-3.2.3 /usr/share/licenses/redis-3.2.3/COPYING /var/lib/redis /var/log/redis /var/run/redis
3.配置文件/etc/redis.conf 如下:
# 備份 [root@centos7 ~]# cp /etc/redis.conf{,.bak} [root@centos7 ~]# grep "^##" /etc/redis.conf ################################## INCLUDES ################################### ################################## NETWORK ##################################### ################################# GENERAL ##################################### ################################ SNAPSHOTTING ################################ ################################# REPLICATION ################################# ################################## SECURITY ################################### ################################### LIMITS #################################### ############################## APPEND ONLY MODE ############################### ################################ LUA SCRIPTING ############################### ################################ REDIS CLUSTER ############################### ################################## SLOW LOG ################################### ################################ LATENCY MONITOR ############################## ############################# EVENT NOTIFICATION ############################## ############################### ADVANCED CONFIG ############################### [root@centos7 ~]# vim /etc/redis.conf bind 0.0.0.0 # 修改綁定的端口 # 啟動 redis,查看堅挺的端口 6379 [root@centos7 ~]# systemctl start redis [root@centos7 ~]# ss -tnlp |grep "redis" LISTEN 0 128 *:6379 *:* users:(("redis-server",pid=3840,fd=4))
3.命令行客戶端命令
★redis-cli
☉語法:
redis-cli [OPTIONS] [cmd [arg [arg ...]]]
☉常用選項:
-h <hostname> Server hostname (default: 127.0.0.1). //主機地址
-p <port> Server port (default: 6379). //端口
-a <password> Password to use when connecting to the server. //密碼
演示:
1.本地連接,直接運行 redis-cli 命令即可
[root@centos7 ~]# redis-cli 127.0.0.1:6379> ping PONG
2.遠(yuǎn)程連接,指明要連接的主機,端口和密碼即可
[root@centos7 ~]# redis-cli -h 192.168.1.112 192.168.1.112:6379> ping PONG 192.168.1.112:6379> help # 獲取幫助 redis-cli 3.2.3 To get help about Redis commands type: "help @<group>" to get a list of commands in <group> "help <command>" for help on <command> "help <tab>" to get a list of possible help topics "quit" to exit To set redis-cli perferences: ":set hints" enable online hints ":set nohints" disable online hints Set your preferences in ~/.redisclirc
1.k/v 和 group
★k/v
key:直接ASCII字符串;
value(數(shù)據(jù)結(jié)構(gòu)):string,lists,hashes,set,sored sets,bltmaps,hyperloglog
★group
@string,@generic,@list @...
2.string(字符串)
★作用:
Redis 字符串?dāng)?shù)據(jù)類型的相關(guān)命令用于管理 redis 字符串值;
☉基本語法:
127.0.0.1:6379>COMMAND KEY_NAME
演示:
192.168.1.112:6379> SET count 1 OK 192.168.1.112:6379> GET count "1" 192.168.1.112:6379> INCR count (integer) 2 192.168.1.112:6379> INCR count (integer) 3 192.168.1.112:6379> INCR count (integer) 4 192.168.1.112:6379> INCR count (integer) 5 192.168.1.112:6379> DECR count (integer) 4 192.168.1.112:6379> DECR count (integer) 3 192.168.1.112:6379> DECR count (integer) 2 192.168.1.112:6379> DECR count (integer) 1
下表列出了常用的 redis 字符串命令:
序號 | 命令及描述 |
---|---|
1 | SET key value 設(shè)置指定 key 的值 |
2 | GET key 獲取指定 key 的值。 |
3 | GETRANGE key start end 返回 key 中字符串值的子字符 |
4 | GETSET key value 將給定 key 的值設(shè)為 value ,并返回 key 的舊值(old value)。 |
5 | GETBIT key offset 對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)。 |
6 | MGET key1 [key2..] 獲取所有(一個或多個)給定 key 的值。 |
7 | SETBIT key offset value 對 key 所儲存的字符串值,設(shè)置或清除指定偏移量上的位(bit)。 |
8 | SETEX key seconds value 將值 value 關(guān)聯(lián)到 key ,并將 key 的過期時間設(shè)為 seconds (以秒為單位)。 |
9 | SETNX key value 只有在 key 不存在時設(shè)置 key 的值。 |
10 | SETRANGE key offset value 用 value 參數(shù)覆寫給定 key 所儲存的字符串值,從偏移量 offset 開始。 |
11 | STRLEN key 返回 key 所儲存的字符串值的長度。 |
12 | MSET key value [key value ...] 同時設(shè)置一個或多個 key-value 對。 |
13 | MSETNX key value [key value ...] 同時設(shè)置一個或多個 key-value 對,當(dāng)且僅當(dāng)所有給定 key 都不存在。 |
14 | PSETEX key milliseconds value 這個命令和 SETEX 命令相似,但它以毫秒為單位設(shè)置 key 的生存時間,而不是像 SETEX 命令那樣,以秒為單位。 |
15 | INCR key 將 key 中儲存的數(shù)字值增一。 |
16 | INCRBY key increment 將 key 所儲存的值加上給定的增量值(increment) 。 |
17 | INCRBYFLOAT key increment 將 key 所儲存的值加上給定的浮點增量值(increment) 。 |
18 | DECR key 將 key 中儲存的數(shù)字值減一。 |
19 | DECRBY key decrement key 所儲存的值減去給定的減量值(decrement) 。 |
20 | APPEND key value 如果 key 已經(jīng)存在并且是一個字符串, APPEND 命令將 value 追加到 key 原來的值的末尾。 |
3.list(列表)
★作用
Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素導(dǎo)列表的頭部(左邊)或者尾部(右邊)
一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。
演示:
192.168.1.112:6379> RPUSH mylist "mon" (integer) 1 192.168.1.112:6379> LINDEX mylist 0 "mon" 192.168.1.112:6379> RPUSH mylist "tun" (integer) 2 192.168.1.112:6379> LPUSH mylist "sun" (integer) 3 192.168.1.112:6379> LINDEX mylist 0 "sun" 192.168.1.112:6379> LINDEX mylist 0 "sun" 192.168.1.112:6379> LINDEX mylist 1 "mon" 192.168.1.112:6379> LINDEX mylist 2 "tun" 192.168.1.112:6379> RPOP mylist "tun" 192.168.1.112:6379> LLEN mylist (integer) 2
下表列出了列表相關(guān)的基本命令:
序號 | 命令及描述 |
---|---|
1 | BLPOP key1 [key2 ] timeout 移出并獲取列表的第一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止。 |
2 | BRPOP key1 [key2 ] timeout 移出并獲取列表的最后一個元素, 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止。 |
3 | BRPOPLPUSH source destination timeout 從列表中彈出一個值,將彈出的元素插入到另外一個列表中并返回它; 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止。 |
4 | LINDEX key index 通過索引獲取列表中的元素 |
5 | LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者后插入元素 |
6 | LLEN key 獲取列表長度 |
7 | LPOP key 移出并獲取列表的第一個元素 |
8 | LPUSH key value1 [value2] 將一個或多個值插入到列表頭部 |
9 | LPUSHX key value 將一個或多個值插入到已存在的列表頭部 |
10 | LRANGE key start stop 獲取列表指定范圍內(nèi)的元素 |
11 | LREM key count value 移除列表元素 |
12 | LSET key index value 通過索引設(shè)置列表元素的值 |
13 | LTRIM key start stop 對一個列表進(jìn)行修剪(trim),就是說,讓列表只保留指定區(qū)間內(nèi)的元素,不在指定區(qū)間之內(nèi)的元素都將被刪除。 |
14 | RPOP key 移除并獲取列表最后一個元素 |
15 | RPOPLPUSH source destination 移除列表的最后一個元素,并將該元素添加到另一個列表并返回 |
16 | RPUSH key value1 [value2] 在列表中添加一個或多個值 |
17 | RPUSHX key value 為已存在的列表添加值 |
4.set(集合)
★作用:
Redis的Set是string類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現(xiàn)重復(fù)的數(shù)據(jù)。
Redis 中 集合是通過哈希表實現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是O(1)。
集合中最大的成員數(shù)為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
演示:
192.168.1.112:6379> SADD s1 'a' 'b' 'c' (integer) 3 192.168.1.112:6379> SMEMBERS s1 1) "c" 2) "b" 3) "a" 192.168.1.112:6379> SISMEMBER s1 'a' (integer) 1 192.168.1.112:6379> SISMEMBER s1 'c' (integer) 1 192.168.1.112:6379> SISMEMBER s1 'd' (integer) 0 192.168.1.112:6379> SADD s2 'a' 'c' 'd' 'f' (integer) 4 192.168.1.112:6379> SINTER s1 s2 1) "c" 2) "a" 192.168.1.112:6379> SUNION s1 s2 1) "f" 2) "a" 3) "b" 4) "d" 5) "c"
下表列出了 Redis 集合基本命令:
序號 | 命令及描述 |
---|---|
1 | SADD key member1 [member2] 向集合添加一個或多個成員 |
2 | SCARD key 獲取集合的成員數(shù) |
3 | SDIFF key1 [key2] 返回給定所有集合的差集 |
4 | SDIFFSTORE destination key1 [key2] 返回給定所有集合的差集并存儲在 destination 中 |
5 | SINTER key1 [key2] 返回給定所有集合的交集 |
6 | SINTERSTORE destination key1 [key2] 返回給定所有集合的交集并存儲在 destination 中 |
7 | SISMEMBER key member 判斷 member 元素是否是集合 key 的成員 |
8 | SMEMBERS key 返回集合中的所有成員 |
9 | SMOVE source destination member 將 member 元素從 source 集合移動到 destination 集合 |
10 | SPOP key 移除并返回集合中的一個隨機元素 |
11 | SRANDMEMBER key [count] 返回集合中一個或多個隨機數(shù) |
12 | SREM key member1 [member2] 移除集合中一個或多個成員 |
13 | SUNION key1 [key2] 返回所有給定集合的并集 |
14 | SUNIONSTORE destination key1 [key2] 所有給定集合的并集存儲在 destination 集合中 |
15 | SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素 |
5.hash(哈希)
★作用:
Redis hash 是一個string類型的field和value的映射表,hash特別適合用于存儲對象。
Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)。
演示:
192.168.1.112:6379> HSET h2 name taotao (integer) 1 192.168.1.112:6379> HSET h2 age 25 (integer) 1 192.168.1.112:6379> HGETALL h2 1) "name" 2) "taotao" 3) "age" 4) "25" 192.168.1.112:6379> HKEYS h2 1) "name" 2) "age" 192.168.1.112:6379> HVALS h2 1) "taotao" 2) "25" 192.168.1.112:6379> HGET h2 name "taotao" 192.168.1.112:6379> HGET h2 age "25"
下表列出了 redis hash 基本的相關(guān)命令:
序號 | 命令及描述 |
---|---|
1 | HDEL key field2 [field2] 刪除一個或多個哈希表字段 |
2 | HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。 |
3 | HGET key field 獲取存儲在哈希表中指定字段的值。 |
4 | HGETALL key 獲取在哈希表中指定 key 的所有字段和值 |
5 | HINCRBY key field increment 為哈希表 key 中的指定字段的整數(shù)值加上增量 increment 。 |
6 | HINCRBYFLOAT key field increment 為哈希表 key 中的指定字段的浮點數(shù)值加上增量 increment 。 |
7 | HKEYS key 獲取所有哈希表中的字段 |
8 | HLEN key 獲取哈希表中字段的數(shù)量 |
9 | HMGET key field1 [field2] 獲取所有給定字段的值 |
10 | HMSET key field1 value1 [field2 value2 ] 同時將多個 field-value (域-值)對設(shè)置到哈希表 key 中。 |
11 | HSET key field value 將哈希表 key 中的字段 field 的值設(shè)為 value 。 |
12 | HSETNX key field value 只有在字段 field 不存在時,設(shè)置哈希表字段的值。 |
13 | HVALS key 獲取哈希表中所有值 |
14 | HSCAN key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的鍵值對。 |
6.sorted set(有序集合)
★作用:
Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復(fù)的成員。
不同的是每個元素都會關(guān)聯(lián)一個double類型的分?jǐn)?shù)。redis正是通過分?jǐn)?shù)來為集合中的成員進(jìn)行從小到大的排序。
有序集合的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。
集合是通過哈希表實現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是O(1)。 集合中最大的成員數(shù)為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
下表列出了 redis 有序集合的基本命令:
序號 | 命令及描述 |
---|---|
1 | ZADD key score1 member1 [score2 member2] 向有序集合添加一個或多個成員,或者更新已存在成員的分?jǐn)?shù) |
2 | ZCARD key 獲取有序集合的成員數(shù) |
3 | ZCOUNT key min max 計算在有序集合中指定區(qū)間分?jǐn)?shù)的成員數(shù) |
4 | ZINCRBY key increment member 有序集合中對指定成員的分?jǐn)?shù)加上增量 increment |
5 | ZINTERSTORE destination numkeys key [key ...] 計算給定的一個或多個有序集的交集并將結(jié)果集存儲在新的有序集合 key 中 |
6 | ZLEXCOUNT key min max 在有序集合中計算指定字典區(qū)間內(nèi)成員數(shù)量 |
7 | ZRANGE key start stop [WITHSCORES] 通過索引區(qū)間返回有序集合成指定區(qū)間內(nèi)的成員 |
8 | ZRANGEBYLEX key min max [LIMIT offset count] 通過字典區(qū)間返回有序集合的成員 |
9 | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 通過分?jǐn)?shù)返回有序集合指定區(qū)間內(nèi)的成員 |
10 | ZRANK key member 返回有序集合中指定成員的索引 |
11 | ZREM key member [member ...] 移除有序集合中的一個或多個成員 |
12 | ZREMRANGEBYLEX key min max 移除有序集合中給定的字典區(qū)間的所有成員 |
13 | ZREMRANGEBYRANK key start stop 移除有序集合中給定的排名區(qū)間的所有成員 |
14 | ZREMRANGEBYSCORE key min max 移除有序集合中給定的分?jǐn)?shù)區(qū)間的所有成員 |
15 | ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定區(qū)間內(nèi)的成員,通過索引,分?jǐn)?shù)從高到底 |
16 | ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分?jǐn)?shù)區(qū)間內(nèi)的成員,分?jǐn)?shù)從高到低排序 |
17 | ZREVRANK key member 返回有序集合中指定成員的排名,有序集成員按分?jǐn)?shù)值遞減(從大到小)排序 |
18 | ZSCORE key member 返回有序集中,成員的分?jǐn)?shù)值 |
19 | ZUNIONSTORE destination numkeys key [key ...] 計算給定的一個或多個有序集的并集,并存儲在新的 key 中 |
20 | ZSCAN key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成員和元素分值) |
當(dāng)前題目:Redis基礎(chǔ)應(yīng)用
標(biāo)題鏈接:http://jinyejixie.com/article26/pgeecg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、靜態(tài)網(wǎng)站、手機網(wǎng)站建設(shè)、App設(shè)計、響應(yīng)式網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)