redis中的資料結構

2021-09-26 05:37:06 字數 3944 閱讀 3705

string 常用命令

說明get

獲取儲存在給定鍵中的值

set設定儲存在給定鍵中的值,可以是字串、整數或者浮點數

del刪除給定鍵值對,使用與所有資料結構型別

eg:

➜  bin ./redis-cli

127.0.0.1:6379>

set name qi**

ok127.0.0.1:6379> get name

"qi**"

127.0.0.1:6379> del name

(integer) 1

127.0.0.1:6379> get name

(nil)

127.0.0.1:6379>

常用命令

說明rpush

將指定值push到列表的右端

lpush

將指定值push到列表的左端

lpop

從列表的左端彈出乙個值,病房會被彈出的值

rpop

從列表的有端彈出乙個值,病房會被彈出的值

lrange

獲取列表在指定範圍內的所有值

eg:

127.0.0.1:6379> lpush user-list qi**

(integer) 1

127.0.0.1:6379> lpush user-list xiaoming

(integer) 2

127.0.0.1:6379> lindex user-list 0

"xiaoming"

127.0.0.1:6379> lindex user-list 1

"qi**"

127.0.0.1:6379> rpush user-list xiaobai

(integer) 3

127.0.0.1:6379> lrange user-list 0 -1

1)"xiaoming"

2)"qi**"

3)"xiaobai"

127.0.0.1:6379> lpop user-list

"xiaoming"

127.0.0.1:6379> lrange user-list 0 -1

1)"qi**"

2)"xiaobai"

常用命令

說明sadd

將指定元素新增到集合

smembers

返回集合包含的所有元素

sismember

檢查指定元素是否存在於集合中

srem

如果指定元素存在集合中,則移除這個元素

eg:

127.0.0.1:6379> sadd user-set qi**

(integer) 1

127.0.0.1:6379> sadd user-set xiaoming

(integer) 1

127.0.0.1:6379> smembers user-set

1)"xiaoming"

2)"qi**"

127.0.0.1:6379> sismember user-set qi**

(integer) 1

127.0.0.1:6379> sismember user-set qiq

(integer) 0

127.0.0.1:6379> srem user-set qiq

(integer) 0

127.0.0.1:6379> srem user-set qi**

(integer) 1

127.0.0.1:6379> smembers user-set

1)"xiaoming"

127.0.0.1:6379>

常用命令

說明hset

在雜湊表中設定給定的鍵值對

hget

獲取雜湊表中指定鍵的值

hgetall

獲取雜湊表包含的所有鍵值對

hdel

如果給定的鍵在雜湊表中存在,則移除這個鍵值對

eg:

127.0.0.1:6379> hset user-hash *** m

(integer) 1

127.0.0.1:6379> hget user-hash name

"qi**"

127.0.0.1:6379> hget user-hash age

"20"

127.0.0.1:6379> hget user-hash ***

"m"127.0.0.1:6379> hgetall user-hash

1)"name"

2)"qi**"

3)"age"

4)"20"

5)"***"

6)"m"

127.0.0.1:6379> hdel user-hash ***x

(integer) 0

127.0.0.1:6379> hdel user-hash ***

(integer) 1

127.0.0.1:6379> hgetall user-hash

1)"name"

2)"qi**"

3)"age"

4)"20"

常用命令

說明zadd

將乙個帶有給定分數的成員新增到有序集合中

zrange

根據元素在有序集合中所處的位置從有序集合裡面獲取多個元素

zrangebyscore

獲取有序集合在給定分數範圍內的所有成員

zrem

如果給定成員存在於有序集合中,則移除這個成員

eg:

127.0.0.1:6379> zadd zset-user 90 qi**

(integer) 1

127.0.0.1:6379> zadd zset-user 89 xiaoming

(integer) 1

127.0.0.1:6379> zadd zset-user 59 xiaobai

(integer) 1

127.0.0.1:6379> zrange zet-user 0 1

(empty list or set)

127.0.0.1:6379> zrange zet-user 0 1 withscores

(empty list or set)

127.0.0.1:6379> zrange zet-user 0 -1 withscores

(empty list or set)

127.0.0.1:6379> zrange zset-user 0 -1 withscores

1)"xiaobai"

2)"59"

3)"xiaoming"

4)"89"

5)"qi**"

6)"90"

127.0.0.1:6379> zrange zset-user 0 1 withscores

1)"xiaobai"

2)"59"

3)"xiaoming"

4)"89"

127.0.0.1:6379> zrangebyscore zset-user 0 60 withscores

1)"xiaobai"

2)"59"

127.0.0.1:6379> zrangebyscore zset-user 60 100 withscores

1)"xiaoming"

2)"89"

3)"qi**"

4)"90"

127.0.0.1:6379> zrem zset-user qi**

(integer) 1

127.0.0.1:6379> zrange zset-user 0 1 withscores

1)"xiaobai"

2)"59"

3)"xiaoming"

4)"89"

Redis中的資料結構

struct sdshdr 為啥不使用c語言自帶的char?1.常數複雜度獲取字串長度 2.不會緩衝區溢位 3.減少字串修改帶來的記憶體重分配通過未使用的空間字段實現了 惰性空間釋放 刪除字元時,不會立馬收回空間,而是留給下次使用 4.二進位制安全 c字串以空字串為結尾,所以不能儲存音訊等二進位制檔...

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

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

Redis 的資料結構

redis是乙個先進的key value鍵值儲存資料庫,通常作為資料結構伺服器。支援strings,hashes,lists,sets,sorted sets,bitmaps 和hyperloglogs redis的字串為sds dynamic string 可以儲存任何東西,最大長度可達515兆。...