redis高级进阶3----5种类型扩展使用之String

时光毁灭记忆、已成空白 提交于 2020-11-15 17:59:29

这一节简要介绍下Redis中String类型的使用场景。
##1.常规使用
最常用的就是key value,value存放一个字符串。
##2.数值增减
最常用的就是数据库分表操作中的主键维护。假设对文稿表(zcarticle)进行分表操作,分成3张表,那么这3张表中的文稿id(主键)不允许重复,则对文稿插入操作时,需要有个主键分配器,redis刚好可以充当这个角色。redis中的incr key 与decr key可以实现数值的自增与自减。实际场景:当有文稿插入操作时,程序去调用redis的incr 文稿id指令,获取到分配的文稿id。这里利用了redis的单线程操作,同一时刻只有一个请求获取得到文稿id,所以插入到文稿表中的文稿id是不可能重复的。
总结:1.Redis用于控制数据库表主键id,为数据库表主键提供生成策略,保证数据库表的主键唯一性。2.此方案适用所有数据库,且支持数据库集群。
##3.数据时效性设置
常用的是控制热门新闻的时效性。Redis中的setex key seconds value命令来实现该控制。例如:需要设置id为1258的新闻为热门新闻10秒钟。那么setex 1258 10 新闻对象值。则10秒钟后去redis中就拿不到这个key对应的值了。
总结:redis控制数据的生命周期,适用于所有具有时效性限定控制的操作。
##4.key的命令规范
假设缓存一个自媒体号主页的数据,包括:关注数、粉丝数、文章数、动态数等。则key通用的命名格式:表名:主键名:主键值:字段名 value。eg: user:id:1356739:fans 1000;user:id:1356739:attentions 1350;user:id:1356739:articles 3720。
另一种存储方式:表名:主键名:主键值 value。eg:user:id:1356739 value的值{id:1356739,fans:1000,attentions:1350,articles:3720}。
这两种存储方式都可以采用。没有好坏之分。第一种更新比较方便,第二种一次性获取到对象数据方便。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!