Redis基礎資料結構
系列文章基於Redis2.8版本
1:Redis學習資料收集
2:Redis基礎資料結構
3:Redis實現分散式鎖
2.1 String
2.1.1 小知識
Redis 的字串是動態字串,是可以修改的字串,內部結構實現上類似於Java的ArrayList,
需要注意的是字串最大長度為 512M。
2.1.2 SET GET 賦值,取值
SET key value [EX seconds] [PX milliseconds] [NX|XX]
如果KEY已存在,就覆蓋舊值
[EX seconds] 設定鍵的過期時間 秒
SET key value EX second == SETEX key second value
[PX milliseconds] 設定鍵的過期時間 毫秒
SET key value PX millisecond == PSETX key millisecond value
NX 只有在鍵不存在的時候,才對鍵進行設定
SET key value NX == SETNX key value
XX 只在鍵已存在的時候,才對鍵進行設定
GET key
返回key所關聯的字串值
2.1.3 MSET MGET 批量操作
同時設定一個或多個key-value
MSET key1 value1 key2 value2 key value3
MGET key1 key2 key3
2.1.4 自增 自減
INCR key 將key儲存的數字增1
INCRBY key increment 將key儲存的數字增increment
INCRBYFLOAT key increment 將key儲存的數字增加浮點數increment
DECR key 將key儲存的數字減1
DECRBY key decrement 將key儲存的數字減decrement
2.1.5 value字元處理
SETRANGE key offset value 用value引數覆蓋給定key 從偏移量offset開始
STRLEN key 返回key所儲存的字串值得長度
GETRANGE key start end 返回key字串中的子串 -1表示最後個字元
APPEND key value 將value追加到原來的value的末尾
2.1.6 操作
賦值,取值
> set name liuawei
OK
> get name
"liuawei"
> set name liuawei2 NX
(nil)
> get name
"liuawei"
> set exkey exvalue EX 6
OK
> get exkey
"exvalue"
> get exkey
(nil)
自增,自減
> set key 18
OK
> set age 18
OK
> incr age
(integer) 19
> incrby age 5
>(integer) 24
> decr age
(integer) 23
> decrby age 5
(integer) 18
> incrbyfloat age 1.5
19.5
批量操作
> mset key1 value1 key2 value2 key3 value3
OK
> mget key1 key2 key3
1) "value1"
2) "value2"
3) "value3"
value字串操作
> set str `hello world`
OK
> setrange str 6 redis
11
> get str
"hello redis"
> strlen str
(integer) 11
> append str `v2.0`
15
> get str
>"hello redisv2.0"
> getrange str 0 -1
"hello redisv2.0"
> getrange str 0 5
"hello "
> getrange str -4 -1
"v2.0"
2.2 List列表操作
2.2.1 增加,取出元素
LPUSH key value [value...]
將一個或多個值value插入到列表key的頭部
LPUSHX key value
將值value插入到列表表頭,當且僅當key存在並且是一個列表
LPOP key
移除並返回列表key的頭元素
RPUSH kye value [value...]
將一個或多個值value插入到列表key的尾部
RPUSHX
將值value插入到列表key的表尾,當且僅當key存在並且是一個列表
RPOP
移除並返回列表key的微元素
2.2.2 value操作
LSET key index value
將列表key下標為index的元素值設定為value
LTRIM key start stop
讓列表保留制定區間內的元素,不在指定區間的元素被刪除
LREM key count value
根據引數count的值,移出列表中與引數value相等的元素
LRANGE key start stop
返回列表元素中指定區間內的元素
LLEN key
返回列表key的長度
LINSERT key BEFORE|AFTER pivot value
將值 value插入到列表key當中,位於值pivot之前或之後。
LINDEX key index
返回列表key中,下標為index的
2.2.3 阻塞
BLPOP key [key ...] timeout
列表阻塞式的彈出
BRPOP key [key ...] timeout
BRPOP 是列表的阻塞式(blocking)彈出原語。
2.2.4 特性
RPOPLPUSH source destination
BRPOPLPUSH source destination timeout
2.2.5 操作
右邊進左邊出:佇列
右邊進右邊出:棧
增加,取出元素:
> lpush list value1
(integer) 3
> del list
(integer) 0
> lpush list value1 value2
(integer) 2
> rpush list value3 value4
(integer) 4
> lrange list 0 -1
1) "value2"
2) "value1"
3) "value3"
4) "value4"
value操作
2.3 hash
2.3.1 設值取值
HSET key field value
將Hash表key中的field的值設定value。
HMSET key field value [field value ...]
同時將多個field-value(域-值)對設定到雜湊表key中
HGET key field
返回雜湊表 key 中給定域 field 的值。
HGETALL key
返回雜湊表 key 中,所有的域和值。
HVALS key
返回雜湊表key中所有域的值。
HKEYS key
返回雜湊表key中的所有域。
2.3.2 其他操作
HDEL key field [field ...]
刪除雜湊表key中的一個或多個指定域,不存在的域將被忽略。
HEXISTS key field
檢視雜湊表key中,給定域 field 是否存在。
HLEN key
返回雜湊表 key 中域的數量。
2.4 set集合
2.4.1 新增 移除,遍歷 基礎操作
SADD key member [member ...]
將一個或多個member元素加入到集合key當中,已經存在於集合的member元素將被忽略。
SPOP key
移除並返回集合中的一個隨機元素。
SREM key member [member ...]
移除集合key中的一個和多個元素
SMEMBERS key
返回集合 key 中的所有成員。
SCARD key
返回集合 key 的基數(集合中元素的數量)。
SISMEMBER key member
判斷 member 元素是否集合 key 的成員。
2.4.2 集合操作
SDIFF key [ksy1...]
返回集合key的差集
SDIFFSTORE destination key [key ...]
返回集合key的差集並將結果保留在destinatio集合
SINTER key [key ...]
返回集合key的交集
SINTERSTORE destination key [key ...]
返回集合key的交集並將結果賦給destination
SMOVE source destination member
將member元素從source集合移動到destination集合
SRANDMEMBER key [count]
返回集合key裡面的一個隨機數
SUNION key [key ...]
返回結合key的全集
SUNIONSTORE destination key [key ...]
返回結合key的全集並將結果賦給destination
2.5 zset集合
2.5.1 新增 移除,遍歷 基礎操作
ZADD key score member [[score member] [score member] ...]
將一個或多個 member元素及其score值加入到有序集key當中。
ZCARD key
返回有序集 key的基數。
ZCOUNT key min max
返回有序集 key 中, score 值在 min 和 max 之間(預設包括 score 值等於 min 或 max )的成員的數量。
相關文章
- Redis基礎——剖析基礎資料結構及其用法Redis資料結構
- Redis基礎資料結構之字串Redis資料結構字串
- Redis基礎資料結構之MapRedis資料結構
- Redis基礎資料結構之SkipListRedis資料結構
- 淺析Redis基礎資料結構Redis資料結構
- Redis基礎資料結構之連結串列Redis資料結構
- Redis 的基礎資料結構(三)物件Redis資料結構物件
- Redis基礎(一)資料結構與資料型別Redis資料結構資料型別
- 通俗易懂的Redis資料結構基礎教程Redis資料結構
- Redis 的基礎資料結構(一) 可變字串、連結串列、字典Redis資料結構字串
- 資料結構基礎 連結串列資料結構
- Redis基礎知識(學習筆記1--五種基礎資料結構)Redis筆記資料結構
- 基礎資料結構大賞資料結構
- Pytorch基礎-tensor資料結構PyTorch資料結構
- 探索Redis設計與實現1:Redis 的基礎資料結構概覽Redis資料結構
- Redis資料結構Redis資料結構
- Redis 資料結構Redis資料結構
- 資料結構基礎--雜湊表資料結構
- 資料結構基礎第3講資料結構
- 資料結構基礎第4講資料結構
- 基礎資料結構之遞迴資料結構遞迴
- 基礎資料結構之陣列資料結構陣列
- 大資料基礎架構總結大資料架構
- redis的資料結構Redis資料結構
- Python基礎之os和資料結構Python資料結構
- Python基礎之:Python的資料結構Python資料結構
- 公共基礎知識-資料結構-樹資料結構
- 前端資料結構---相關基礎概念前端資料結構
- Redis基礎(二)資料庫Redis資料庫
- 【資料庫】Redis基礎篇資料庫Redis
- Redis 的基礎資料結構(二) 整數集合、跳躍表、壓縮列表Redis資料結構
- Redis 基礎 -- 點陣圖(bitmap)資料結構和 bitmap的常用命令Redis資料結構
- redis必會基礎命令、資料結構、lua指令碼和分散式鎖等Redis資料結構指令碼分散式
- 基礎夯實:基礎資料結構與演算法(一)資料結構演算法
- redis支援的資料結構Redis資料結構
- Redis中的資料結構Redis資料結構
- Redis 資料結構 之 SDSRedis資料結構
- Redis 5大資料結構Redis大資料資料結構