Redis五種基本型別的操作

2021-08-21 09:50:33 字數 4424 閱讀 3705

string舉例:

新增/修改乙個 string:

127.0.0.1:6379> set test 123

重新賦值:

127.0.0.1:6379>set test 456

查詢乙個string:

127.0.0.1:6379>get test

注:(integer) 6(返回字串的長度)

刪除乙個key:

127.0.0.1:6379>del test

返回字串長度

127.0.0.1:6379>strlen test

hash

是乙個string

型別的field

和value

的對映表

,可以看做是乙個

map表結構容器。

新增乙個

hash

:127.0.0.1:6379>hmset hashtest  name xiaoming age 12

返回整個

hash

:127.0.0.1:6379>hgetall hashtest

1)"name"

2)"xiaoming"

3)"age"

4)"12"

返回hash

中的乙個字段:

127.0.0.1:6379>hget hashtest name

"xiaoming"

返回hash

中的多個個字段:

127.0.0.1:6379>hmget hashtest name age

1)"xiaoming"

2)"12"

刪除乙個

hash

中的字段:

127.0.0.1:6379>hdel hashtest age

127.0.0.1:6379>hgetall hashtest

1)"name"

2)"xiaoming"新增/

修改hash

中的字段:

127.0.0.1:6379> hset hashtest  name xiaoxin

(integer) 0

127.0.0.1:6379> hgetall hashtest

1) "name"

2) "xiaoxin"

檢視指定鍵是否存在:

127.0.0.1:6379> hexists hashtest age

(integer) 0

注:返回整數1或

0。1表示雜湊包含該欄位。

0 表示雜湊不包含該欄位,或

key不存在。

補:檢視所有存在的鍵:

127.0.0.1:6379> keys * 

清空所有資料庫資料:

127.0.0.1:6379> flushall 

清空當前資料庫資料:

127.0.0.1:6379> flushdb

新增元素到列表頭:

127.0.0.1:6379>lpush listtest a b c

(integer)4 

獲取列表指定範圍內的元素,

lrangelist_name index_start  index_end 如:

127.0.0.1:6379> lrange listtest 0 2

1)"c"

2)"b"

3)"a"

新增元素到列表尾:

127.0.0.1:6379>rpush listtest 1 2 3

(integer)6

檢視key

對應的value

型別:127.0.0.1:6379>type listtest

list

通過索引獲取列表中的值:

127.0.0.1:6379>lindex listtest 3

"1"獲取列表長度:

127.0.0.1:6379>llen listtest

(integer)6

移除元素:

lremlisttest count  value

count > 0 :

從表頭開始向表尾搜尋,移除與

value

相等的元素,數量為

count

。count < 0 :

從表尾開始向表頭搜尋,移除與

value

相等的元素,數量為

count

的絕對值。

count = 0 :

移除表中所有與

value

相等的值。

例子:127.0.0.1:6379>lrange list 0  2

1)"3"

2)"3"

3)"1"

127.0.0.1:6379>lrem list 1 3

(integer)1

127.0.0.1:6379>lrange list 0 2

1)"3"

2)"1"

刪除其中某條記錄(示例):

127.0.0.1:6379>lpush list qq ww ee qq qq tt

(integer)6

127.0.0.1:6379>lrange list 0 5

1)"tt"

2)"qq"

3)"qq"

4)"ee"

5)"ww"

6)"qq"

127.0.0.1:6379>lset list 3 flag

ok127.0.0.1:6379>lrange list 0 5

1)"tt"

2)"qq"

3)"qq"

4)"flag"

5)"ww"

6)"qq"

127.0.0.1:6379>lrem list 0 flag

(integer)1

127.0.0.1:6379>

set是

string

型別的無序集合。集合成員是唯一的,不允許重複

新增資料到集合:

127.0.0.1:6379> sadd settest 1 2 3 4 5

(integer) 5

返回集合資料:

127.0.0.1:6379> smembers settest

1) "1"

2) "2"

3) "3"

4) "4"

5) "5"

獲取集合數量:

127.0.0.1:6379> scard settest

(integer) 5

移除集合中的值:

127.0.0.1:6379> srem settest 5

(integer) 1

redis

有序集合和集合一樣也是

string

型別元素的集合

,且不允許重複的成員。

有序集合特點:

1.有序集合中每個元素都會關聯乙個double型別的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

2.有序集合的成員是唯一的,但分數(score)卻可以重複。

3.有序集合和集合一樣也是string型別元素的集合,且不允許重複的成員

新增元素到集合:

127.0.0.1:6379> zadd sortset 1 a

(integer) 1

注:如果

value(a)

存在,更新分數,否則新增新

value

,分數可以相同。

返回指定元素的分數:

127.0.0.1:6379> zscore sortset a

"1"查詢元素,

zrange sortset start_index  end_index:

127.0.0.1:6379> zrange sortset 0 1

1) "a"

移除集合中的元素:

127.0.0.1:6379> zrem sortset a

(integer) 1

根據分數區間查詢元素

127.0.0.1:6379> zcount zset 1 10

3.6 有序集合與列表(ext):

有序集合型別在某些方面和列表型別有些相似

:(1)二者都是有序的。

(2)二者都可以獲得某一範圍的元素。

但是二者有著很大的區別,這使得它們的應用場景也是不同的

:(1)列表型別是通過鍊錶實現的,獲取靠近兩端的資料速度極快,而當元素增多後,訪問中間資料的速度會較慢,所以它更加適合實現如「新鮮事」或「日誌」這樣很少訪問中間元素的應用。

(2)有序集合型別是使用雜湊表和跳躍表(skip list)實現的,所以即使讀取位於中間部分的資料速度也很快。

(3)列表中不能簡單地調整某個元素的位置,但是有序集合可以。

(4)有序集合要比列表型別更耗費記憶體。有序集合型別算得上是 redis的5種資料型別中最高端的型別。

(五)Redis基本型別 列表型別(List)

1 介紹 列表型別可以儲存乙個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某乙個片段。列表內部是使用雙向鍊錶實現的,獲取越接近兩端的元素速度越快。乙個列表型別鍵最多能容納2的32次方 1個元素。2 命令 1 向列表兩端增加元素 lpush key value value rpush...

redis五大基本型別 String

string 字串 指定配置檔案啟動redis,並連線,預設6379埠,看如何連線 root 5444 src redis server redis2.conf root 5444 src redis cli p 6380 127.0.0.1 6380 ping pong 記錄命令,先看 set g...

Redis 基本型別之 Set 型別

基本指令 sadd 127.0.0.1 6379 sadd myset hello 在集合中新增元素 integer 1 127.0.0.1 6379 sadd myset iron integer 1 127.0.0.1 6379 sadd myset egg integer 1 smembers...