NoSQL之Redis對zset(有序集合)資料型別的操作
一、簡介
Sorted set(zset)是set的升級版本,它在set的基礎上增加了一個順序屬性,這一屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新得值調整順序。可以理解為有兩列的mysql表,一列存value,一列存順序。操作中key理解為zset的名字。
二、有序集合的操作方法
下面score是按順序操作而rank是按索引操作
1.zadd key score member:向名稱為key的zset中新增元素member,score用於排序。如果該元素存在,則更新其順序。
127.0.0.1:6379> zadd zsetkey 1 'one'
(integer) 1
127.0.0.1:6379> zadd zsetkey 2 'two'
(integer) 1
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
127.0.0.1:6379> zadd zsetkey 3 'two'
(integer) 0
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "3"
zadd zsetkey 3 'two'這條語句代表更新失敗,但是順序號已經改變
這裡需要注意score必須是整數,不能是字元型。
2.zrange zsetkey start end withscores:獲取zsetkey的有序集合的數字,從start取到end,並且附上順序號。若不加withscores那麼不附加順序號
127.0.0.1:6379> zrange zsetkey 0 -1
1) "one"
2) "two"
3.zrem zsetkey member:刪除zsetkey中的member元素。返回1代表刪除成功
127.0.0.1:6379> zrem zsetkey two
(integer) 1
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "one"
2) "1"
4.zincrby zsetkey incrment member:如果在名稱為zsetkey的zset中已經存在元素member,那麼該元素的score增加Increment否則向該集合中新增該元素,其score的值為Increment。若成功返回的是member增長之後的序列號。
127.0.0.1:6379> zadd zsetkey 3 'three'
(integer) 1
127.0.0.1:6379> zincrby zsetkey 1 one
"2"
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "one"
2) "2"
3) "two"
4) "2"
5) "three"
6) "3"
127.0.0.1:6379> zincrby zsetkey 3 one
"5"
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "two"
2) "2"
3) "three"
4) "3"
5) "one"
6) "5"
從上面的例子可以看出,序列號可以相同,類似二維陣列。
5.zrank zsetkey member:返回名稱為zsetkey的zset中member元素的索引值(按score從小到大排序)即下標。返回的時索引值
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "two"
2) "2"
3) "three"
4) "3"
5) "one"
6) "5"
127.0.0.1:6379> zrank zsetkey three
(integer) 1
127.0.0.1:6379> zrank zsetkey one
(integer) 2
three和one的索引分別是1和2.
6.zrevrank zsetkey member:返回名稱為zsetkey的zset中的member元素的索引值(按score從大到小排序)。
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "two"
2) "2"
3) "three"
4) "3"
5) "one"
6) "5"
127.0.0.1:6379> zrevrank zsetkey one
(integer) 0
127.0.0.1:6379> zrevrank zsetkey three
(integer) 1
7.zrevrange zsetkey start end:按從大到小的順序,從zsetkey中從start取到end。
127.0.0.1:6379> zrevrange zsetkey 0 -1 withscores
1) "one"
2) "5"
3) "three"
4) "3"
5) "two"
6) "2"
8.zrangebyscore zsetkey start end:返回集合中給定score區間內的值
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "two"
2) "2"
3) "three"
4) "3"
5) "four"
6) "4"
7) "five"
8) "5"
9) "one"
10) "5"
127.0.0.1:6379> zrangebyscore zsetkey 3 5 withscores
1) "three"
2) "3"
3) "four"
4) "4"
5) "five"
6) "5"
7) "one"
8) "5"
這個和zrange最大的區別就是範圍值是儲存的key值而不是預設的整形索引值。
9.zcount zsetkey start end:返回給定範圍內的members數量
127.0.0.1:6379> zcount zsetkey 3 5
(integer) 4
4個,沒有問題
10.zcard zsetkey:返回zsetkey中所有元素的個數
127.0.0.1:6379> zcard zsetkey
(integer) 5
11.zremrangebyrank zsetkey start end :刪除集合內給定區間內的元素
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "two"
2) "2"
3) "three"
4) "3"
5) "four"
6) "4"
7) "five"
8) "5"
9) "one"
10) "5"
127.0.0.1:6379> zremrangebyrank zsetkey 1 3
(integer) 3
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "two"
2) "2"
3) "one"
4) "5"
上面的操作刪除了zsetkey中索引從1到3的,也就是three four five。
12.zremrangebyscore zsetkey start end:按順序刪除zsetkey中給定範圍內的元素(按順序而不是按所以刪除)
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
7) "four"
8) "4"
127.0.0.1:6379> zremrangebyscore zsetkey 2 3
(integer) 2
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "one"
2) "1"
3) "four"
4) "4"
相關推薦
NoSQL之Redis對zset(有序集合)資料型別的操作
一、簡介 Sorted set(zset)是set的升級版本,它在set的基礎上增加了一個順序屬性,這一屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新得值調整順序。可以理解為有兩列的mysql表,一列存value,一列存順序。操作中key理解為zset
【Redis】(sorted set) 有序集合資料型別的使用,應用和問題
Redis 有序集合(sorted set)資料型別的使用,應用和問題 Overview Redis 有序集合(sorted set)資料型別的使用,應用和問題 redis-cli 操作資料庫 - n/a Python 操作 Redis
lunix下的redis數據庫操作——zset有序集合
之間 rank core 有序 nbsp rem color add 個數 創建:(有序集合存在一個權重的概念) zadd zset 1 a 2 b 3 c 4 d 5 e 6 f 7 g # 輸出: # 1) "a" # 2) "b" # 3) "c" # 4) "d
Redis-List命令和Zset有序集合命令的併發原子性原理
一、Redis-List命令和Zset有序集合命令的併發原子性原理 這個併發原則處理的過程是要基於當前的key在客戶端發生了併發產生了阻塞才會執行, 否者會返回NULL不做處理,多個命令併發操作這個KEY,就可能產生阻塞 db->blocking_keys 字典維護的雜湊表,存放客
NoSQL之redis(資料型別上)
1.String型別 ①賦值:192.168.191.130:6379> set name zs②取值192.168.191.130:6379> get name③取值 並賦值192.168.191.130:6379> GETSET name ll④設定多個值
NoSQL之redis(資料型別下)
1.set型別 (1)命令 ①增加元素 語法:SADD key member [member ...]②刪除元素 語法:SREM key memb
NoSQL之Redis及資料型別
Redis Remote Dictionary Server(遠端字典伺服器)-www.redis.cn中文網站 高效能的分散式記憶體資料庫,支援資料持久化(可以把記憶體儲存到硬碟),list,hash,set,zset等資料型別和ma
redis 系列14 有序集合對象
負數 img core get 有序 htm ring .html nan 原文:redis 系列14 有序集合對象一. 有序集合概述 Redis 有序集合對象和集合對象一樣也是string類型元素的集合,且不允許重復的成員。不同的是每個元素都會關聯一個double類
Nosql 之 Redis數據庫
redia1、redis基礎入門2、redis應用進階 一、概念redis是一個開源的鍵-值,即是緩存又是存儲,支持持久化,借助sentinel實現一定意義的高可用,數據結構服務器:string,list,hash,set ,sorted set,bitmap,hyperloglognosql 四種流派:ke
Redis有序集合Sorted set操作
並集 有序集合 排名 區間 sca 素數 offset add spa Sorted set全部命令如下: zadd key score1 member1 score2 member2 ... # 將一個或多個member元
NoSQL之Redis入門筆記
Redis 1.Redis介紹 1.1 NoSQL:一類新出現的資料庫(not only sql),它的特點 不支援sql語法 儲存結構跟傳統關係型資料庫中的那種關係表完全不同,nosql中儲存的資料都是key value形式 NoSQL的世界中沒有一種通用的語言,
Redis鍵值對的value的資料型別
1、Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted set:有序集合)。 String型別的資料(作為快取使用),列舉少量用法: 1.插入和讀取一條string型別的資料
NoSql之Redis系列(一)
為什麼要學習Redis Redis是什麼? Redis is an open source (BSD licensed), in-memory data structure store, used
NoSQL之redis(Jedis連線 API)
工程搭建: (1)介紹:redis不僅使用命令可以操作,現在基本上主流的語言都有客戶端支援,比如:java、C、C#、C++、php、Node.js、Go等。  
NoSQL之redis(介紹+叢集搭建)
一、NoSQL的介紹 什麼是NoSQLNoSQL,叫非關係型資料庫,它的全名Not only sql。它不能替代關係型資料庫,只能作為關係型資料庫的一個良好補充。 NoSQL的分類: 鍵值對(K-V)儲存資料庫 相關產品: Tokyo Cabinet/Tyrant
NoSQL之redis(常用命令)
keys (1)介紹:返回滿足條件的所有key,支援正則 &
NoSQL之redis(持久化策略)
1.rdb方式 (1)介紹:redis預設的是通過快照來將資料持久化到磁碟中。 (2)持久化的條件: &
NoSQL之redis(分散式叢集)
1.叢集架構: 解釋: 所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位制協議優化傳輸速度和頻寬。 節點的fail是通過叢集中超過半數的節點檢測失效時才生效. 客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連線叢集所有節點,連線叢集中
NoSQL之redis(主從複製)
1.redis主從複製的介紹: 持久化保證了即使redis伺服器重啟也不會丟失資料,因為redis伺服器重啟後將硬碟上持久化的資料恢復到記憶體中, 但是當redis伺服器的硬碟損壞了可能會導致資料丟失,如果通過redis的主從複製機制就可以避免這種單點故障。
NoSQL資料庫Redis支援的五種資料結構及使用場景
眾所周知,Redis相比同樣作為快取伺服器的memcached而言,除了有持久化的功能外,還比著memcached有更多豐富的資料結構,今天就來講一下Redis支援的五種資料結構:String(字串)、Hash(雜湊)、List(列表)、Set(集合)、Sorted Set(有序集合)