Redis字符串类型的几种应用


本文摘自PHP中文网,作者齐天大圣,侵删。

Redis的字符串数据类型,是最简单的一种数据类型,但它也是学好其他redis的数据类型的基础。下面介绍几种redis的应用。

限流

使用redis可以做到限流的作用。redis本身性能极高,可以用它来抵挡部分请求。

防御大流量

现在网站攻击日渐猖獗,静态的资源可以用cdn,但动态的程序如何防御。下面,展示一个redis来防御大量请求的解决方案。

基本思路是限制一个ip一定时间内请求数,比如一个ip一秒的请求数不能超过10次。

伪代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

function ip_limit($cnt = 10)

{

    $ip = $_SERVER['SERVER_ADDR'];

    $key = "limit:$ip:cnt";

    $isExisit = $redis->set($key, 1, ['nx', 'ex'=>1]);

     

    if (!$isExisit || $redis->incr($key) <= $cnt) {

        // 通过

        return true;

    } else {

        // 不通过

        return false;

    }

}

获取验证码频率限制

短信验证码现在已经成为了web应用的标配的,许多的地方都会需要短信验证码。如:注册时、修改密码时、一些对安全要求比较高的操作。当然,验证码获取不是免费的,所以,我们不希望用户无限制的获取验证码。

也是相同的思路,我们可以写一个获取短信验证码频率的限制应用。

完成一个一分钟内,只准获取一次验证码的应用,伪代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

function code_limit($mobile, $time = 60)

{

    $key = "limit:$mobile:cnt";

    $isExisit = $redis->set($key, 1, ['nx', 'ex'=>$time]);

     

    if (!$isExisit) {

        // 通过

        return true;

    } else {

        // 不通过

        return false;

    }

}

存放session

使用redis存放session,是现在推荐的方式,他的好处是性能高,到期自动销魂。(PHP自身的session垃圾回收机制不是可靠的,过期销魂是有概率的)。

该方式非常简单,只需在修改php.ini文件即可。

找到session.save_handler这行,修改为

1

session.save_handler = redis

将session.save_path修改为

1

session.save_path = "tcp://localhost:6379"

如何redis设置了密码的话,只需修改为

1

session.save_path = "tcp://localhost:6379?auth=password"

如果不是单机应用,而是分布式的话,怎么样使用redis来集中管理session呢?

也很简单。也是只要修改php.ini文件即可。如session集中管理在192.168.1.220这个机器上,其他机器的php.ini文件修改如下:

1

2

session.save_handler = redis

session.save_path = "tcp://192.168.1.220:6379?auth=password"

上面只是介绍了一些redis字符串类型了应用,开发者们可以结合实践项目和自己的想象力,创造出更多的应用

以上就是Redis字符串类型的几种应用的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Redis集群和哨兵的区别

Redis怎么查看版本

详解Redis的lru算法

Redis事务使用案例分享

Redis与memcache的区别是什么?

java中的Redis怎么使用

Redis中一些常用工具介绍

Redis 更新(set) key值过期时间被重置

Redis注册成window服务的方法介绍

Redis持久化的几种方式介绍

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...