Redis作为一款非关系型内存数据库,因为其丰富的数据结构和较高的效率和易用性。在很多系统中比如分布式消息队列和大型网站的缓存服务器等都有大规模的使用。
下面以一个对文章投票的网站作为例子,简单介绍Redis的使用:
1.实现文章投票功能
实现一个投票系统,并能根据票数计算出一个随时间减少的分值,并限制超过一定时间之后不能再投票。
分值的计算方法是:Votes*ConstValue + PublishTime
实现该功能所需要的数据结构有:
1)一个散列表存储文章信息 hash
{hash-name> "article:92617" | [key:value]> [title:"****"] [link:"http://****"],[poster:"user:83271"] [time:12389238] [votes:998]}
注:使用”:”来分割名字的不同部分,以此来构建命名空间,如article:9276表示,类别是文章,文章ID是9276
2)两个有序集合分别用于存储文章ID对应的发布时间和评分 zset
网站通过这两个有序集合就可以实现文章列表按照发布时间或者评分排序的功能。
{zet-name> "time:" | [value:score]> ["article:10048":1332065273.23] ["article:10048":133427934.62 ] }
{zet-name> "score:" | [value:score]> ["article:10048":1332065273.23] ["article:10048":133427934.62