Redis 簡介 資料型別 常用命令

2021-10-04 02:23:42 字數 4558 閱讀 9046

​ redis 是屬於乙個開源的基於鍵值對的非關係型資料庫(nosql),最大的特點就是將資料儲存在記憶體中,可以用於訊息佇列和快取,redis 和memcached 不同,redis 支援多種資料型別(string字串、hash、list、set(集合)、zset (有序集合)

​ redis 可以 快取動態資料,將動態資料快取在內容中通過 aof或者 rdb 的持久化方式將快取寫入硬碟中

redis 支援資料的持久化

集群模式

memcached 屬於多執行緒

keys *
set key value
例:

127.0.0.1:6379>

set a b

ok127.0.0.1:6379> keys *

1)"a"

127.0.0.1:6379> get a

"b"

get key
dbsize
exists key
del key
expire key seconds
ttl key

type key
mset key1 value key2 value2 ……
mget key1 key2 key3

incr key

decr key
incrby key 數值
decrby key  數值
incrbyfoat key  浮點數值

strlen key
getset key value
setrange key 位置 value
getrange key start end
select dbid
flushdb
flushall
資料型別

種數內部編碼

string(字串)

3int、embstr、raw

hash(雜湊)

2hashtable、ziplist

list(列表)

1quicklist

set(集合)

2hashtable、intset

zset(有序集合)

2skiplist、ziplist

object encoding key
set key value	[ex seconds] [px milliseconds ] [nx |xx]
ex seconds	設定秒級別過期時間

px milliseconds 設定毫秒級別過期時間

nx 表示鍵值對不存在才能設定成功,用於建立

xx 表示鍵值對存在才能設定成功,用於更新

hset key field value
hget key field
hdel key field [dield……]
heln key
hmset key field value [field value]

hmget key field [field]……

hexists key field
hkeys key
hvals key
hgetall key
hstrlen key field

型別命令

新增rpush lpush linsert

檢視lrange lindex llen

刪除lpop rpop lrem ltrim

修改lset

右寫入	rpush	key value [value……]

左寫入 lpush key value [value……]

linsert  key before | after pivot value
lrange key start end
lindex key 索引下標
llen key
lpop			左刪除(左彈出)	刪除列表中左側的第乙個元素

rpop 右刪除(右彈出) 刪除列表中右側的第乙個元素

lrem 刪除指定元素

ltrim 刪除指定範圍的元素

lrem格式:

lrem key count value
引數:

count 表示刪除的數量,吸入count有三種型別

count 大於0 ,從左往右刪除,刪除count個value

count 小於0,從右往左刪除,刪除count個value

count 等於0,刪除所有的value

ltrim格式

ltrim key start end 		刪除指定範圍之外的元素,寫入範圍為保資料的範圍

lset key index newvalue

blpop key [key] timeout

brpop key [key] timeout

1)	元素無序存放

2) 元素不可重複

sadd key element [element…]
srem key element [element……]
scard key

srandmember key [count]
spop key [count]

檢視集合內所有元素

smembers key

集合之間的操作

內部編碼

zadd key score member [score member] [nx|xx] [ch] [incr]
引數

nx		不出在才能設定成功

xx 表示存在才能設定成功

ch 表示進行操作的元素和分值發生變化的個數

incr 對指定元素的分值進行增加

zcard key
zscore key member
zrank key member

arevrank key member
zrangebyscore key min max [withscores] [limi offset counrt]		公升序檢視

zrevrangebyscore key max min [withscores] [kunut offset count] 降序檢視

+inf 表示正無窮

-inf 表示負無窮

zremrangebyrank	key	start end
zremrangebyscore	key	min	max
zinterstore destination numkeys key key.... [weights weight] [aggregte sum | min | max]
引數:

destination		儲存交集或者並集的集合名

numkeys 進行交集或者並集運算的集合數量

weights weight 給集合設定權重,預設為1

aggregate 求完交集或者並集分值按照 和 | 最小值| 或者最大值進行選擇

Redis資料型別list型別常用命令

列表型別可以儲存乙個有序的字串列表,常用的操作是向列表兩端新增元素,或者獲得列表的某乙個片段。列表型別內部是使用雙向鍊錶實現的,所以列表兩端新增元素是非常快的,獲取越接近兩端的元素速度就越快。通過列表特點可以模擬棧 佇列 社交 的新鮮事,我們關心的只是最新的內容,使用列表型別儲存,即使新鮮事的總數達...

Redis 常用命令,基礎資料型別

redis五大資料型別 string 字串 單個key裡面有單個值 不可重複 重複新增會覆蓋 hash 雜湊 單個key裡面有多個字段 每個字段裡面都有值 不可重複 重複新增沒啥用 list 列表 單個key裡面有多個值 可以重複 set 集合 單個key裡面有多個值 不可重複 重複新增沒啥用 zs...

Redis資料型別的常用命令

redis資料型別 資料型別不支援型別巢狀 字串型別 雜湊型別 列表型別 集合型別 有序集合型別 redis命令 key命名可以採用 物件型別 物件id 物件屬性 如 user 1 friends 表示使用者為1的好友列表 全域性相關 keys pattern 獲得符合規則的鍵名列表,pattern...