主从复制问题 在了解sentinel前,先说说redis主从复制中的问题.假设主从架构,master:写,slave1和slave2:读.当master出现问题.客户端读取数据没有问题,写入数据出现问题.一般的解决方式就是选取另一个slave做master.其他slave主从复制新的master.这是需要手动去处理的.我们也不知道什么会出现问题,不可能即时的去修改.&e...
假如只有一台redis服务器,当它出现故障.比如宕机,CPU占用率满等问题.客户端是无法链接到redis服务.如果只是服务挂了,可以重启服务.但如果是机器出了问题,就可能需要将redis迁移到别的服务器,切保证数据也迁移.主从复制 实现主从复制有两种方式,第一种通过命令.第二种通过配置进行主从复制.需要注意的是.当启用了主从复制后.从节点会复制主...
Redis是将数据存储到内存中.我们在玩游戏的时候,通常会感到电脑卡.因为游戏占用了很多的内存.但是我们重启电脑后,电脑就不再卡了.是因为重启释放了内存资源.那我们将Redis存储到内存中,如果不进行数据的持久化(说白了就是将内存的数据存储到硬盘中),重启计算机或者redis服务突然挂掉就会造成数据的丢失.持久化方式快照 : 相当于给数据库拍一张照片,将所有的数据...
生命周期 首先我们需要了解Redis的生命周期.可以分为四个阶段:客户端请求服务端,发送命令服务端命令进行排队(因为Redis是单线程)服务端执行命令服务端将结果返回给客户端慢查询 慢查询发生在生命周期的第三阶段,客户端超时不一定和慢查询有关,但是慢查询一定会产生客户端超时的一个原因.首先慢查询是一个先进先出的队列.比如一条命令在执行时间过长(生命...
通用命令 Redis可分为五大数据结构,即string,hash,list,set,zset.每种数据类型都有自己的命令,所谓通用命令,就是在任意一个类型中都能使用的命令.keys 获取所有key,不建议使用.会阻塞其他命令.127.0.0.1:6379> set sb zcx OK 127.0.0.1:6379> set xsb sb...
官方文档里的异步回调函数已经在swoole4.3版本后移除改用协程.在文档的Coroutine中.注意自己的版本哈.可通过终端命令php --ri swoole查看自己当前Swoole版本.注意事项 官方文档的redis协程实例go(function () { $redis = new Swoole\Coroutine\Redis(); $r...
mysql解耦案列 简单做一个队列处理订单系统和配送系统,首先创建一个订单表.CREATE TABLE `order_queue` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `order_id` int(10) unsigned NOT NULL COMMENT '订单id', `mobile` var...
熬夜补了两篇文章,现在都四点半了.再介绍下消息队列等等太阳小老弟吧.什么是消息队列 消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,也...
框架安装完成后系统默认的全局配置文件是项目根目录下的 produce.php,dev.php 文件,(在3.1.2版本之前是dev.env,produce.env). 当使用php easyswoole start命令启动时,默认为开发模式,加载 dev.php 运行 php easyswoole start produce 命令时,为生产模式,加载 produce....
Redis是一个key-value存储系统。有多种存储类型string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型)。也就意味着学习成本会比其他非关系型数据库的学习成本高.Redis为了保证效率,数据都是缓存在内存中。并且Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master...