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...