不要放冷数据
首先,对于冷数据,无论大小,都不建议放在 Redis 中。Redis 数据要全部放在内存中,资源宝贵,把冷数据放在其中实在是一种浪费,冷数据放在普通的存储比如关系数据库中就好了。
冷数据的例子
1.网站的文章
2.几万年不变的数据
放热数据
尤其是写频繁的热数据,如果量比较小,是最适合放到 Redis 中的。
热数据的例子
1.用户注册数
2.文章阅读量
3.热度排行榜
4.用户订阅量
一个游戏,用户分数存储结构
ZADD leaderboard
例子:一个在线游戏你会需要
1.前100名高手榜
ZREVRANGE leaderboard 0 99
2.某一个用户在游戏的实时排名
ZRANK leaderboard
3.强大的计数功能
这要感谢INCRBY和其他相似命令。
INCR user:
user:
特定时间内的特定项目
比如文章阅读量,不停被用户刷新啊。
另一项对于其他数据库很难,但Redis做起来却轻而易举的事就是统计在某段特点时间里有多少特定用户访问了某个特定资源。比如我想要知道某些特定的注册用户或IP地址,他们到底有多少访问了某篇文章。
每次我获得一次新的页面浏览时我只需要这样做:
SADD page:day1:
当然你可能想用unix时间替换day1,比如time()-(time()%3600*24)等等。
想知道特定用户的数量吗?只需要使用SCARD page:day1:
需要测试某个特定用户是否访问了这个页面?SISMEMBER page:day1:
总之,任何小数据,且变动极其频繁的数据,比较适合存储在redis里