redis常用的数据结构和应用场景
string 字符串
简单的key-value类型,用于缓存变量,如:
set customer_name jack
set customer_age 20
get customer_name
get customer_age
hash 字典
hset customer name jack
hset customer age 20
#hgetall customer
hget customer name
hget customer age
如果使用结构1,则需要将name和age转成json,这样,查询name或age的时候,需要拿到json字符串,然后解析,才能拿到。
list 列表
一般用于消息队列。
lpush jobs 1
lpush jobs 2
lpush jobs 3
rpop jobs
sort 集合
数据唯一。如:生成一组唯一的订单号。
127.0.0.1:6379> sadd order_sn 102
(integer) 1
127.0.0.1:6379> sadd order_sn 125
(integer) 1
127.0.0.1:6379> sadd order_sn 102
(integer) 0
127.0.0.1:6379> smembers order_sn
- “102”
- “125”
sorted set 有序集合
唯一,有序。增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列。
使用场景:如玩家排行榜。
127.0.0.1:6379> zadd games 100 p1
(integer) 1
127.0.0.1:6379> zadd games 88 p2
(integer) 1
127.0.0.1:6379> zadd games 80 p3
(integer) 1
127.0.0.1:6379> zadd games 102 p4
(integer) 1