redis实战
这个专栏主要介绍redis的一些应用场景,主要参考书目是英文版的《redis in action》
dongxie548
IT民工一枚
展开
-
redis实战之使用redis实现排行榜
设想在一个游戏中,有上百万的玩家数据,如果现在需要你根据玩家的经验值整理一个前20名的排行榜,你会怎么做呢?一般的做法是写一条类似下面这条sql语句的方式来获取:select * from game_socre order by score desc limit 0,20这种方式在数据量较小的情况下可行,但是在数据量大的情况下查询速度将变慢,特别是还需要联表查询时,速度下降的就更明显了。原创 2015-09-21 21:51:19 · 18490 阅读 · 3 评论 -
redis实战之使用redis存储session数据
在之前的一篇服务器由单机转换为负载均衡时需要做哪些处理博文中提到,在多台服务器的情况下,建议使用redis存储session数据,具体如何实现呢?其实实现起来非常简单,以php为例:只需要在php.ini文件中修改相关session配置,如下所示:session.save_handler = redissession.save_path = "tcp://127.0.0.1:原创 2015-09-21 13:39:07 · 8809 阅读 · 1 评论 -
redis实战之使用redis保存最近浏览的商品数据
注:本文只做教学目的,而在实际的应用场景中,大型的电商网站的访问量较大,将浏览数据存储于redis中并不可行,望读者知悉。在我们网上购物时,经常能看到那些电商网站通常都有一个叫做“最近浏览过的商品”这样的功能模块,如果你曾经接触过ecshop,应该很容易就想到这样的功能可以用cookie进行实现。实现的思路是:用户点击商品详情链接时,在该页面植入一段代码,将该商品在数据库中对应的id号存储原创 2015-09-20 23:55:01 · 12019 阅读 · 2 评论 -
Redis 禁用FLUSHALL FLUSHDB KEYS 命令
FLUSHALL FLUSHDB 命令会清空数据,而且从不失败,对于线上集群非常危险。KEYS * 命令,当数据规模较大时使用,会严重影响Redis性能,也非常危险。如果从根本上规避这些风险呢?Redis提供了非常简单且有效的方法,直接在配置文件中设置禁用这些命令。设置非常简单,如下rename-command FLUSHALL ""rename-command转载 2015-09-19 20:59:19 · 12685 阅读 · 1 评论 -
redis实战:使用redis实现自动补全
抄袭自前任程序员的创意。。。如果我想输入“雄英”来找到游戏库中的所有带有这两个字的游戏,该怎样用redis来实现呢?原理: 1, 将所有的游戏名字读出来,拆分成单个汉字2, 将这些汉字作为redis集合的键,写入redis,每个集合里的值是所有那些游戏名字中包含此汉字的游戏的id3, 当用户输入文字的时候通过ajax异步请求,将用户输入传给PHP4, 将输入的文字拆原创 2015-08-05 18:32:30 · 3367 阅读 · 3 评论 -
redis实战:redis限制某ip的恶意请求
在我们日常开发工作中,经常会遇到接口被恶意请求的情况,应用redis,我们可以很方便的限制某ip一定时间段内对接口的请求次数。具体实现代码如下:接口文件:api.php<?phprequire_once 'redis.php';$ip = $_SERVER['REMOTE_ADDR'];$redis = new iredis();//如果该ip存在值说明30秒内重复请求了,原创 2015-07-19 22:09:51 · 9782 阅读 · 1 评论 -
redis实战基础篇:redis的5种数据类型的基本操作
1、string类型基本操作列表:CommandWhat it doesGET获取指定键对应的值SET设定键值DEL删除指定键对应的值(对所有数据类型都有效)原创 2015-08-27 00:22:11 · 869 阅读 · 1 评论