FWQ
Redis数据库常见的键值设计有哪些
Redis数据库常见的键值设计有哪些 收藏 在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《Redis数据库常见的键值设计有哪些》,聊聊,希望可以帮助到正在努力赚钱的你。 用户登录系统 记录用户登录信息的一个系统,我们简化业务后只留下一张表。 关系型数据库的设计 mysql>select*fromlogin; +———+—————-+————-+———————+ |user_id|name|login_times|last_login_time| +———+—————-+————-+———————+ |1|kenthompson|5|2011-01-0100:00:00| |2|dennisritchie|1|2011-02-0100:00:00| |3|JoeArmstrong|2|2011-03-0100:00:00| +———+—————-+————-+———————+ user_id表的主键,name表示用户名,login_times表示该用户的登录次数,每次用户登录后,login_times会自增,而last_login_time更新为当前时间。 REDIS的设计 关系型数据转化为KV数据库,我的方法如下: key表名:主键值:列名 value列值 一般使用冒号做分割符,这是不成文的规矩。比如在php-adminforredis系统里,就是默认以冒号分割,于是user:1user:2等key会分成一组。于是以上的关系数据转化成kv数据后记录如下: Setlogin:1:login_times5 Setlogin:2:login_times1 Setlogin:3:login_times2 Setlogin:1:last_login_time2011-1-1 Setlogin:2:last_login_time2011-2-1 Setlogin:3:last_login_time2011-3-1 setlogin:1:name”kenthompson“ setlogin:2:name“dennisritchie”…