redis
muwenbo666
程序员
展开
-
Lua脚本基础,简单案例
lua脚本里的一些简单常用的函数及方法整理原创 2022-11-25 17:15:58 · 575 阅读 · 0 评论 -
高并发-限流削峰
【代码】高并发-限流削峰。1.计数器限流、2.滑动窗口限流原创 2022-03-10 17:05:14 · 496 阅读 · 0 评论 -
redis 管道(pipeline)、事务(multi)、普通、lua脚本性能对比
<?phpset_time_limit(0);ini_set('memory_limit','1024M');$redis = new Redis();G('1');$redis->connect('127.0.0.1');//不具备原子性 ,管道//$redis->pipeline();$redis->multi($redis::PIPELINE);for ($i=0;$i<100000;$i++){ $redis->set("test.原创 2022-03-01 17:39:06 · 1274 阅读 · 0 评论 -
redis面试题
一、redis缓存的雪崩、穿透和击穿是指什么,如何解决?1.缓存雪崩缓存雪崩是指缓存同一时间大面积失效,所以后面的请求都会落在数据库上,造成数据库短时间内承受大量请求而崩溃解决方案: 1.缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生 2.缓存预热 3.互斥锁:查数据库的时候把缓存的键锁起来,查完数据库把数据放到缓存中,再释放这个锁2.缓存穿透缓存穿透是指缓存和数据库中都没有的数据,导致所有的请求都落在数据库上,造成数据库短时间内承受大量请求而崩掉解决...原创 2021-08-19 23:31:04 · 105 阅读 · 0 评论 -
解决击穿问题redis互斥锁
通过redis的setnx实现互斥锁代码如下(示例): <?php function getRedis() { $redis = new Redis(); $redis->connect('127.0.0.1', 6379, 60); return $redis; } //加锁 function lock($key, $random) { $redis = getRedi...原创 2021-08-18 19:09:10 · 552 阅读 · 0 评论 -
redis锁解决高并发问题,可防止重复提交
前言这里我们主要利用Redis的setnx的命令来处理高并发setnx有两个参数。第一个参数表示键。第二个参数表示值。如果当前键不存在,那么会插入当前键,将第二个参数做为值。返回1。如果当前键存在,那么会返回0。代码如下(示例):<?phpclass Lock{ private static $_instance ; private $_redis; private function __construct() { ...原创 2021-08-18 16:02:33 · 1766 阅读 · 0 评论 -
Redis乐观锁实现高并发秒杀实例
Redis乐观锁实现高并发秒杀实例Redis对事务的支持比较简单。redis只能保证一个客户端发起的事务命令可以执行,中间不会插入其他事务。因为redis是单线程的,所以做到上面这点很容易。一般redis接受到客户端的命令后会立即执行,但是如果客户端发起multi命令,redis不会立即执行,而是让当前连接进入事务上下文,把命令放到队列中,接受到exec命令后,redis会顺序执行队列中的命令。并把执行结果打包到一起返回客户端,之后就结束了事务上下文代码如下(示例):<?phphead原创 2021-04-29 22:59:15 · 209 阅读 · 0 评论 -
LINUX(CentOS 7) php7.4安装redis以及php-redis扩展
CentOS 7下PHP7.3安装redis扩展1.安装phpize2.下载、解压、编译Redis3.解压php7.zip总结1.安装phpizeyum -y install php73-php-devel2.下载、解压、编译Rediscd /usr/local/srcwget http://download.redis.io/releases/redis-4.0.6.tar.gztar -zxvf redis-4.0.6.tar.gzcd redis-4.0.6./configure -原创 2021-04-06 16:03:01 · 4395 阅读 · 0 评论