二 redis的資料型別及常見操作

2021-07-25 19:37:30 字數 4678 閱讀 6425

提供五種基本資料型別

string   hash  list  set  zset

清空資料:flushdb

string 型別:string 是最基本的型別,而且string 型別是二進位制安全的。意思是redis 的string 可以

包含任何資料

設定值:  set 名字 值

取值      get  名字

刪除 del 名字

setnx 名字 值 如果不存在就設定,存在不設定返回0

setex(expired)

setex 名字 10 值 設定名字的存在10間為10秒

setrange 替換字串

set  email 1230

setrange email 2 ee (從第二位開始替換)--setrange email 2 ee

mset 名字 值 名字 值 名字 值。。。。設定多個值

mget 名字 名字 名字

getset  先得到在賦值

set key1 aa

getset key1 bb  得到在變成bb

incr 和 decr 對某乙個值進行遞增或減

incrby 和decrby 對某個值進行長度的遞增和遞減( incrby 名字[步長])

get email

值---"12eess"

strlen【名字】 獲取長度--strlen "email"  值是 (integer) 6  

清空資料:flushdb

-------------------

hash 型別 是string型別的filed和value 的對映表,

或者說是乙個string集合。   特別適合儲存物件,相比較而言,物件型別存在hash裡 要

比在string裡面占用更少的空間  方便訪問整個物件

1: hset test1 name 小明  hset 是hash集合,test 是集合的名字,name是欄位名,小明是值

2: heget test1 name   得到小明   

3: hmset test2 name xiaozhou  age 18 *** men 存多個值(值不能為空)

4: hmget test2 name  *** 得到多個值

5: hgetall test2 返回hash的所有filed和value

6: hvals test2返回hash的所有value  

7: hlen test2 返回指定hash的field數量

8: hkeys test2返回hash的所有field

9: hdel test2 name刪除指定的hash field

10:hexists test2 name 測試指定field是否存在 存是(1)

11: hincrby test2 age 1234 將指定的hash filed 加上給定值(好像需要原本的值是數字integer)

-----list型別

list型別(裡面的元素可以重複)  是乙個鍊錶結構的集合,主要功能有pubsh,pop獲取元素等。或者說list

型別是乙個雙端鍊錶的結構,我們可以通過相關操作進行集合的頭部或者尾部新增刪除元素,可以作棧和佇列

,滿足大多數需求。

0:lrange 名字 0 -1 (表示從頭到尾獲取元素)lrange list1 0 -1

1:lpush 方法   從頭部插入元素(棧)(先進後出) lpish list1 1 2 3 4

2:rpush 方法 從尾部加入元素(佇列)先進先出  rpush list2 1 2 3 4

3:linsert 插入元素

lpush list3 "ww"

linsert list3 before "ww" e

linsert 集合  before 集合中的元素    插入的元素

4: lset方法:將指標下標的元素替換掉

lset list4 0 "vv"

5:lrem方法:刪除元素,返回刪除的個數

lrem list4 2(要移除的個數) 1(要移除的元素)

6:ltrim:保留指定範圍內的資料(下標)

ltrim list4 0 2 --0到2 下標

7:lpop:從list的頭部刪除元素,並返回刪除的元素

lpop list4

8:rpop:從list的尾部刪除元素,並返回刪除的元素

rpop list4

9:lindex方法:返回list 中index位置的元素

lindex list1 0  即檢視list1 中下標為0的 值

10:llen方法:返回元素的個數

llen list1

------------------------\

set 是無序集合(沒有重複的資料),最大可以包含(2 的32 次方-1)個元素。set 的是通過hash table 實現的,

所以新增,刪除,查詢的複雜度都是o(1)。hash table 會隨著新增或者刪除自動的調整大小。

需要注意的是調整hash table 大小時候需要同步(獲取寫鎖)會阻塞其他讀寫操作。可能不

久後就會改用跳表(skip list)來實現。跳表已經在sorted sets 中使用了。關於set 集合型別

除了基本的新增刪除操作,其它有用的操作還包含集合的取並集(union),交集(intersection),

差集(difference)

1:sadd key member 新增乙個 string 元素到 key 對應 set 集合中,成功返回 1,如果元素以及

在集合中則返回0,key 對應的set 不存在則返回錯誤。

srem key member 從 key 對應 set 中移除指定元素,成功返回 1,如果 member 在集合中不

存在或者key 不存在返回0,如果key 對應的不是set 型別的值返回錯誤。

spop key 刪除並返回 key 對應 set 中隨機的乙個元素,如果 set 是空或者 key 不存在返回

nil。

srandmember key 同 spop,隨機取 set中的乙個元素,但是不刪除元素。

smove srckey dstkey member 從srckey對應set中移除member並新增到dstkey對應set中,

整個操作是原子的。成功返回1,如果member 在srckey 中不存在返回0,如果key 不是set

型別返回錯誤。

scard key 返回 set的元素個數,如果 set是空或者 key不存在返回 0。

sismember key member 判斷 member 是否在 set 中,存在返回 1,0 表示不存在或者 key 不

存在。sinter key1 key2 …… keyn 返回所有給定key 的交集。

sinterstore dstkey key1 ....... keyn 返回所有給定 key的交集,並儲存交集存到 dstkey下。

sunion key1 key2 ...... keyn 返回所有給定 key的並集。

sunionstore dstkey key1 ...... keyn 返回所有給定 key的並集,並儲存並集到 dstkey下。

sdiff key1 key2 ...... keyn 返回所有給定 key 的差集。

sdiffstore dstkey key1 ...... keyn 返回所有給定 key的差集,並儲存差集到 dstkey下。

smembers key 返回 key 對應set 的所有元素,結果是無序的。

---------------zset---

zset是在set的基礎上增加了順序,形成乙個有序的集合

操作:(1)zadd

向有序集合zset中增加乙個元素。例如:zadd zset 1 hello

(2)zrange

輸出zset中指定範圍內的的所有元素,按照score從小到大的順序。

例如:zrange zset 0 -1 withscores,表示輸出有序集合zset中所有的元素,並且輸出順序號。

(3)zrem

刪除名稱為key的zset集合中的元素member。例如:zrem set1 hello。

(4)zincrby

把有序集合zset中的指定元素的序列號加上指定的值。例如:zincrby zset 4 hello

(5)zrank

返回名稱為key的zset集合中元素的排名,按照下標從小到大的排名。例如:zrank zset hello。

(6)zrevrank

返回名稱為key的zset集合中元素的排名,按照下表從大到小的排名。例如:zrevrank zset hello。

(7)zrevrange

按照score從大到小的順序輸出集合中所有元素。例如:zrevrange zset 0 -1 withscores。

(8)zrangebyscore

返回集合中給定區間的元素。例如:zrangebyscore zset 2 3 withscores

(9)zcount

返回集合中score在給定區間的數量。zcount zset 2 3

(10)zcard

返回集合中元素的個數。

(11)zremrangebyrank

按照索引來刪除給定區間的元素。例如:zremrangebyrank zset 1 2

(12)zremrangebyscore

刪除score在指定範圍內的元素。例如:zremrangebyscore zset 1 2

常見的資料型別實操

常見的資料型別實操 1 sql 測試整數型別範圍 整型 特點1.根據所佔位元組或儲存的數值範圍分類 tinyint smallint mediumint int integer bigint 2.預設為有符號整型 3.如果超過型別的範圍,會報警告,插入臨界值 最大值或最小值 4.如果想設定為無符號整...

Redis資料型別及操作(二)

redis資料型別及操作 二 redis是key value的資料結構,每條資料都是乙個鍵值對 鍵的型別是字串,並且鍵是不能夠重複的 值的型別有string hash list set zset。查詢鍵 支援正規表示式 key patterns 檢視所有鍵 keys 檢視名稱中包含a的鍵 keys ...

redis(二) 資料型別

參考文章 一 redis資料型別 1.1 字串 strings 有人說,如果只使用redis中的字串型別,且不使用redis的持久化功能,那麼,redis就和memcache非常非常像了。這說明strins型別是乙個很基礎的資料型別,也是任何儲存系統都必須必備的資料型別。字串型別是二進位制安全的。1...