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