redis中的五種類型
一年前已經對redis進行了學習,一直沒有系統的記錄總結,最近讀過一本redis的書和Node.js 實戰一書再次進行回顧和系統的總結來簡要記錄redis:
全局操作:
flashall 清理所有的 keys
常見的類型:
(1)string
(2)hash
(3)有序鏈表List
(4)集合(數組)
(5)有序集合
對應的操作:
- string
set key value
get key
incr key (整形 自增 可以作爲pv 或者點贊記錄)
- hash類型適合存儲object
127.0.0.1:6379> hset author name zhangsan
(integer) 1
127.0.0.1:6379> hset author age 24
(integer) 1
127.0.0.1:6379> hset author height 180
(integer) 1
127.0.0.1:6379> hget author name
"zhangsan"
127.0.0.1:6379> hgetall author
1) "name"
2) "zhangsan"
3) "age"
4) "24"
5) "height"
6) "180"
- 有序鏈表操作社交網站的新鮮事情
存取 l和r分別代表左右 push 存入 pop 彈出
lpush lpop和 rpush rpop 模擬入棧出棧功能
lpush rop 或者 rpush lpop 實現隊列功能
lrange類似slice操作
lrange key start stop
127.0.0.1:6379> lpush la a b c d
(integer) 4
127.0.0.1:6379> rpush lb a b c d
(integer) 4
127.0.0.1:6379> LRANGE la 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> LRANGE lb 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> lpop la
"d"
127.0.0.1:6379> LRANGE la 0 -1
1) "c"
2) "b"
3) "a"
- *set集合類型 適合文章標籤管理
sadd key member […]
srem key member […]
smembers
集合還支持交集、差集、 並集運算
sinter key key1….
sdiff key key1 …
sunion key key1 …
127.0.0.1:6379> SMEMBERS friends
1) "zhangsan"
2) "lisi"
3) "wanger"
- 有序集合 適合排行榜之類的
zadd key score member [score member]
zrem key member [member….]
zrange key start stop [with scores] 按照分數從小到大返回start到stop之間的所有元素
zrevrange key start stop [with score] 分數從大到小排列
127.0.0.1:6379> zadd chengji 45 zhangsan
(integer) 1
127.0.0.1:6379> zadd chengji 60 wanger
(integer) 1
127.0.0.1:6379> zadd chengji 38 baidu
(integer) 1
127.0.0.1:6379> zadd chengji 80 taobao
(integer) 1
127.0.0.1:6379> ZRANGE chengji 0 -1
1) "baidu"
2) "zhangsan"
3) "wanger"
4) "taobao"
127.0.0.1:6379> ZRANGE chengji 0 -1 withscores
1) "baidu"
2) "38"
3) "zhangsan"
4) "45"
5) "wanger"
6) "60"
7) "taobao"
8) "80"
#返回張三的score
127.0.0.1:6379> ZSCORE chengji zhangsan
"45"
參考文檔:
(1)node.js 實戰
(2)redis中文https://redis.readthedocs.org/en/2.4/sorted_set.html#zcard