如果存储序已经列化的对象,可以使用如下格式的key
User::id::{id}
缓存
1.可用来缓存对象,将对象序列化为字符串后,使用格式如User::id::{id}的key存储获取。可使用到命令:
SET key value [EX seconds] [PX milliseconds] [NX|XX]
GET key
例如:
SET User::id::0001 {"id": 0001, "name": "yawn", "age": 18}
2.如果不序列化对象,也可以使用redis的hash类型进行存储和获取:
HSET key field value
HGET key field
key 依然使用User::id::{id}的格式,如下:
HSET User::id::0001 id 0001;
HSET User::id::0001 name yawn;
HSET User::id::0001 age 18;
分布式锁
可使用如下命令实现分布式锁:
SETNX key value; # 获取锁
EXPIRE key seconds; # 设置持有锁的最大时间
DEL key; # 释放锁
SETNX 在key不存在时才能设置成功,可以用来实现分布式锁。
计数器
实现浏览量、点击量计数器,value时数值类型,可以进行增减运算。
SET key value
INCR key # 计数器加1
DECR key # 计数器减一
INCRBY key increment
DECRBY key decrement
GET key # 获取计数
INCR可使value自增1,并返回。
分布式全局序列
分布式全局序列,即产生多个应用中不重复的序列,例如uuid等,也可以用redis实现。
SET key value
INCR key # 获取一个序列
INCRBY key increment # 获取多个序列
可将value设置为数值型,然后每次获取时自增即可。
随机抽奖
随机抽奖可以使用set类型实现。
SPOP key [count] # 随机移除并返回集合中count个值
SRANDMEMBER key [count] # 同上,但不移除
用户点赞、签到
用户点赞、签到功能的实现,可将点赞的用户放到同一个set中。
SADD key number [member ...] # 点赞
SCARD key # 返回点赞的数量
SISMEMBER key member # 某用户是否点赞
SMEMBERS key # 返回所有成员
共同好友功能
共同好友功能,将A和B两个用户的好友分别使用两个set存储,则可以通过关系运算,计算出好友之间的关系。
SUNION key [key ...] # 多个集合的并集
SUNIONSTORE destination key [key ...] # 多个集合的并集并存储在destination中
SINTER key [key ...] # 交集
SINTERSTORE destination key [key ...]
SDIFF key [key ...] # 差集
SDIFFSTORE destionation key [key ...]
例如:
SUNION key [key ...] #
SINTER key [key ...] # 共同好友
SDIFF key [key ...] # 可能认识的人
用户消息列表
用户消息列表,给每个用户维护一个未读消息的列表,阅读之后就移出去。
LPUSH key value [value ...] # 将多个值依次插入到表头
LRANGE key start stop # 返回start和stop之间的元素
LLEN key # 返回list的长度
RPUSH key value [value ...]
RPOP key
新闻热度排行
使用zset做新闻热度排行榜,score为某新闻关键词的热度。
zincrby key 1 # 热度增加1
zrevrange key 0 10 withscores # 获取索引区间内的元素(热度排行前十)
zrevrangebyscore key 999 100 withscores # 获取分数区间内的元素,格式是zrevrangebyscore zset的key 终止score 起始score
相关推荐阅读:Redis数据类型和常用命令操作
redis是以set/get方式存储和获取数据的key-value存储系统 。 redis有五种数据类型:string、list、hash、set、zset。对于不同的数据类型,又不同的操作。 Redis常用操作 string类型操作 hash类型操作 list类型操作 set类型操作 zset类型操作 zset类型中阅读更多Redis数据类型和常用命令操作[...]...
从配置文件学redis–Redis持久化备份
RDB快照 ################################ SNAPSHOTTING ################################## Save the DB on disk:## ...
数据库事务
一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 事务开始后所有操作,要么全部做阅读更多数据库事务[...]...
Elasticsearch 常用查询和Http请求笔记
创建索引: 查询索引 删除索引 _search 查询 _search DSL查询 term与match的区别: term不会对查询的关键词进行分词,而是进行精确匹配,match会先对关键词进行分词,再查询。 对查询词进行分词:...