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的對映表,特別適合...