Redis 的資料結構

2021-07-03 17:01:28 字數 2509 閱讀 4753

redis是乙個先進的key-value鍵值儲存資料庫,通常作為資料結構伺服器。

支援strings, hashes, lists, sets, sorted sets, bitmaps 和hyperloglogs

redis的字串為sds(****** dynamic string)可以儲存任何東西,最大長度可達515兆。

#redis-cli.exe

127.0

.0.1:6379> set name 'cbb'

ok127.0

.0.1:6379> get name

"cbb"

sds的資料結構如下:

struct sdshdr ;
常用命令:set, getredis的雜湊值是字串欄位和字串值之間的對映,所有它們被用來表示物件。

#redis-cli.exe

127.0.0.1:6379> hmset

user:1

username

cccpassword

123age

20ok

127.0.0.1:6379> hgetall

user:1 //取所有key

1>

"username"

2>

"ccc"

3>

"passwrod"

4>

"123"

5>

"age"

6>

"20"

127.0.0.1:6379> hget

user:1

username //取乙個key

"ccc"

上面的hash資料型別,用於儲存使用者的基本資訊,user:1是鍵。

常用命令:hmset, hset, hget, hgetall

列表是簡單的字串列表,排序插入順序。可以新增元素到redis列表的頭部或尾部。

#redis-cli.exe

127.0.0.1:6379> lpush

tutor

redis

1127.0.0.1:6379> lpush

tutor

mongodb

2127.0.0.1:6379> lpush

tutor

rabitmq

3127.0.0.1:6379> lrange

tutor010

1>

"rabitmq"

2>

"mongodb"

3>

"redis"

節點的定義:

typedef struct listnode  listnode;
list的定義

typedef

struct

list list;

補充:

常用命令:lpush, rpush, lpop, rpop, lrange等

set是字串的無序集合。在redis中可以新增、刪除和測試值是否存在。

#redis-cli.exe

127.0.0.1:6379> sadd

total

123 1

127.0.0.1:6379> sadd

total

234 1

127.0.0.1:6379> sadd

total

345 1

127.0.0.1:6379> smembers

total

1>

"123"

2>

"234"

3>

"345"

常用命令:sadd, srem, spop, sdiff, smembers, sunion等與set類似,字串不重複,但其是有序的

常用命令:zadd, zrange,zrem,zcard等

發布(publish)和訂閱(subscribe)

~兩客戶端之間~

當乙個key值上進行了訊息發布後,所有訂閱它的客戶端都會收到相應的訊息。

這一功能最明顯的用法是作為實時訊息系統,比如普通的即時聊天,群聊等功能。

參考:

redis內部資料結構的資料結構

redis對外的公眾的資料結構有五種string,list,set,hash,zset 編碼常量 編碼所對應的底層資料結構 redis encoding int long 型別的整數 redis encoding embstr embstr 編碼的簡單動態字串 redis encoding raw ...

Redis的資料結構

一.redis有哪些資料型別?字串string 字典hash 列表list 集合set 有序集合sortedset hyperloglog redis在2.8.9加入的hyperloglog結構,是用來做基數統計的演算法,其優點是在輸入元素的數量或者體積非常大的時候,計算基數所需的空間總是固定的並且...

redis的資料結構

table of contents前言 準備工作 1.字串 string 操作命令 具體展示 2.字串列表 list 操作命令 具體展示 3.集合 set 鍵是唯一的,可用於共同關注,共同喜好,二度好友 操作命令 具體展示 4.有序集合 zset 操作命令 具體展示 5.雜湊 hash key va...