一 Redis 介紹以及常用型別操作

2021-09-28 18:15:29 字數 3098 閱讀 1752

​ redis是乙個開源的使用ansi c語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。從2023年3月15日起,redis的開發工作由vmware主持。從2023年5月開始,redis的開發由pivotal贊助。

:redis非常快,每秒可執行大約110000次的設定(set)操作,每秒大約可執行81000次的讀取/獲取(get)操作。

支援豐富的資料型別:redis支援開發人員常用的大多數資料型別,例如列表,集合,排序集和雜湊等等。這使得redis很容易被用來解決各種問題,因為我們知道哪些問題可以更好使用地哪些資料型別來處理解決。

操作的原子性:所有redis操作都是原子操作,這確保如果兩個客戶端併發訪問,redis伺服器能接收更新的值。

很多使用工具:redis是乙個多實用工具,可用於多種用例,如:快取,訊息佇列(redis本地支援發布/訂閱),應用程式中的任何短期資料,例如,web應用程式中的會話,網頁命中計數等。

主要有五類其實還不止

keys * : 獲取資料庫的所有的鍵。

exists key: 判斷某個鍵是否存在,返回表示存在,0表示部存在。

type key: 獲取鍵的型別(string,hash,list,set,zset)

4.1 字串的常用操作

set key value: 設定或者覆蓋值。

incr key : 將對應的鍵的值,遞增1.

decr key : 將對應的鍵的值,遞減1.

get key: 根據鍵取值。

del key [key1, key2,,]: 刪除某個鍵。

expire key 時間(秒):設定key的存活時間,單位為秒。

ttl code: 檢視存活時間。 (ttl time to live)

4.2 列表的操作
lpush key value: 往左側中設定值。

rpush key value: 往右側插入值。

lrange start end: 取集合中索引在[start, end]之間的值。

例:lrange aa 0 2 lrange aa 0 -1

llen key: 獲取集合的長度。

lpop key: 移除並返回首元素。

rpop key: 移除並返回尾元素。

lrem key count value: 移除列表中count個值為value的資料。當count為0,移除所有。(了解)

ltrim key start end: 保留指定區域的元素,其他全部刪除。

lset key index value: 設定索引為index的值為value.

lindex key index: 獲取索引為index的元素。

4.3 集合的操作
sadd key member [memerb..]: 往集合中新增元素,返回新增成功的個數。

smembers key: 返回集合中所有的元素。

srem key member: 刪除元素。

sismember key member: 判斷member是否存在, 存在返回1,不存在返回0。

scard key: 返回集合中的個數。

srandmember key: 從集合中隨機返回乙個值。

spop key: 移除並返回乙個隨機的member.

smove src destination member: 將乙個元素移動到另外乙個集合中。

sinter key key: 對集合求交集。

sunion key key: 對兩個集合求並集。

sdiffstore destination key1 key2: 差集運算並儲存到集合中。

sinterstore destination key1 key2: 交集儲存到集合中。

sunionstore destionation key1 key2: 並集儲存到集合中。

4.4 hash操作
hset key field value: 設定值, 如果存在相同的key,對應的值會覆蓋之前的。

hmset key field value filed value: 設定多個值。

hget key field: 取值。

hexists key field: 是否存在。

hgetall key: 獲取集合中所有的元素。

hdel key field: 刪除字段。

hkeys key: 獲取所有的key。

hvals key: 獲取所有的字段值。

hlen key: 獲取欄位的數量。

hsetnx key field value : 不存在的時候設定值。

4.5 有序集合
zadd key score value [score1 value1]: 新增。

zscore key value: 獲取分數。

zrange key start end: 獲取索引從start開始,到end結束的所有的元素。

zrange key start end withscores: 查詢索引從start開始,到end結束的所有元素名和分數。

zcard key: 獲取元素的個數。

zcount key min max: 獲取在指定分數範圍內的元素的個數。閉區間[min, max]

zrem key value1 [value2]: 刪除元素。

zrank key value: 返回value在key中的下標。

zrangebyscore key begin end: 查詢分數在[begin,end]區間的所有值,根據分數排序。

zrangebyscore key min max limit index length; (分頁)***********

zrevrange key 2 3: 倒序排列,然後去取下標在[2, 3]區間的元素。

zremrangebyscore key min max: 移除分數在[min,max]之間的資料,返回移除的個數。

zremrangebyrank key begin end: 移除索引在[begin,end]之間的資料。

Redis之sorted sets型別及操作

sorted set是set的乙個公升級版本,它在set的基礎上增加了乙個順序屬性,這一屬性在新增修改元素的時候可以指定,每次指定後,zset會自動重新按新的值調整順序。可以理解為有兩列的mysql表,一列存value,一列存順序。操作中key理解為zset的名字。和set一樣sorted set也...

Redis在SpringBoot的常用操作

我們一般情況下,使用redis或許更多還是去存session,但是redis還是有很多更廣遠的操作,這裡先列舉幾個比較簡單的和springboot的相結合的比較簡單的操作。redistemplate.opsforvalue set test 100 60 10,timeunit.seconds 向r...

redis資料型別以及用法(一)

字串 string 是最基本的型別,string型別是二進位制安全的,意思是 redis的string可以包含任何資料,比如 jpg或者序列化的物件 乙個redis中字串value最多可以是512m 雜湊 hash 是乙個鍵值對集合,是乙個string的型別的field和value的對映表,特別適合...