
redis
文章平均质量分 69
爱代码也爱生活
吸收别人的精华,记录自己走过的坑,爱好php、java、运维、web前端
展开
-
php结合redis实现高并发下的抢购、秒杀功能
抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:1 高并发对数据库产生的压力2 竞争状态下如何解决库存的正确减少("超卖"问题)对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。重点在于第二个问题常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题原创 2016-07-09 10:09:01 · 79977 阅读 · 21 评论 -
centos安装redis3.0及phpredis扩展使用
线上的统一聊天及推送系统redis版本2.8.6,跑了近一年运行良好,之所以测试redis3.0,因为3.0相比2.8加了很多新特性:Redis Cluster —— 一个分布式的 Redis 实现全新的 “embedded string” 对象编码结果,更少的缓存丢失,在特定的工作负载下速度的大幅提升AOF child -> parent 最终数据传输最小化延迟,通过在 AOF 重写原创 2016-08-06 06:32:55 · 853 阅读 · 1 评论 -
php结合redis高并发下发帖、发微博
发帖、发微博、点赞、评论等这些操作很频繁的动作如果并发量小,直接入库是最简单的但是并发量一大,数据库肯定扛不住,这时可采取延迟发布:先将发布动作保存在队列里,后台进程循环获取再入库模拟发布微博先进入redis队列weibo_redis.php<?php//此处需要安装phpredis扩展$redis = new Redis();$redis->connect('127.0原创 2016-09-05 20:26:33 · 3873 阅读 · 2 评论 -
redis集群节点新增、删除、重新分配slot实战
1、搭建好redis集群参考我的博文 http://blog.youkuaiyun.com/nuli888/article/details/52134117下面操作都在同台机子server1 192.168.1.198上操作2、查看现有节点[root@localhost ~]# cd /usr/local/redis-3.0.6/src/[root@localhost src]# re原创 2016-08-08 17:46:31 · 8266 阅读 · 0 评论 -
redis cpu占用过高排查
redis是用"单线程-多路复用io模型"来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也会下降。而单一线程也只能用到一个cpu核心,所以可以在同一个多核的服务器中,可以启动多个实例,组成master-mast原创 2016-09-05 17:50:22 · 24364 阅读 · 0 评论 -
redis主从复制和集群实现原理
redis主从复制redis主从配置比较简单,基本就是在从节点配置文件加上:slaveof 192.168.33.130 6379主要是通过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,然后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。redis复制过程如下:1、slave原创 2016-08-06 16:17:34 · 22081 阅读 · 0 评论 -
redis集群新增节点:[ERR] Node is not empty
给集群新增节点时提示./redis-trib.rb add-node 192.168.1.198:7006 192.168.1.198:7000解决办法:1、先杀掉新增redis节点服务2、删除新增节点appendonly.aof、dump.rdb、nodes.conf再执行3、还不行再删除所有redis节点的appendonly.aof、dump.rdb、node原创 2016-08-06 19:04:06 · 4568 阅读 · 0 评论 -
redis设置认证密码
1、修改配置文件vi /etc/redis.confrequirepass php0012、重启redis服务sudo service redis restart 3、使用密码测试redis-cli -h 127.0.0.1 -p 6379 -a php001 redis 127.0.0.1:6379> keys * 1) "myset"原创 2016-09-04 18:35:10 · 523 阅读 · 0 评论 -
redis查看连接数及php模拟并发创建redis连接
max_redis.php<?phpset_time_limit (0);for($i=1;$i<=1050;$i++){ exec("nohup php /var/www/html/big/link_redis.php > /dev/null &");}link_redis.php<?php set_time_limit (0);$redis = new redis(原创 2016-09-05 17:25:46 · 4408 阅读 · 0 评论 -
centos安装redis2.8.x和phpredis2.2.x扩展
注意事项:1、如果没wget命令使用yum install wget安装2、没unzip命令请先安装yum install unzip3、没有phpize命令请先安装yum install php-devel 4、没装gcc的请先安装yum install gcc gcc-c++ kernel-devel5、安装redis过程容易出问题,把错误信息复制百度下就可以找到原创 2016-07-07 10:04:43 · 11255 阅读 · 4 评论 -
30个php操作redis常用方法代码例子
注意事项:1、redis分服务端和客户端,set和get是针对单个字符串2、list类型、string类型操作类似php的数组操作 这篇文章主要介绍了30个php操作redis常用方法代码例子,本文其实不止30个方法,可以操作string类型、list类型和set类型的数据,需要的朋友可以参考下 redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了。查个东西搜半天转载 2016-07-06 17:08:35 · 5012 阅读 · 0 评论 -
redis作为消息队列实现代码
这里只是简单实现下redis消息队列,主要了解下这个思路要把消息队列最好,还需考虑可靠消费、可靠发布、持久化、路由匹配、队列监控、负载均衡。。。大都用专业的消息队列系统如rabbitmq,我们公司用的就是这个producer.php生产者者代码<?php$redis = new Redis();$redis->connect('192.168.1.198',7000原创 2016-08-06 20:33:23 · 1694 阅读 · 0 评论 -
redis消息订阅和发布实例
发布订阅(pub/sub)是一种消息通信模式,主要目的是解除消息发布者、消息订阅者之间的耦合pub/sub的特点1、发布者和订阅者不必同时在线,它们不必同时参与交互2、发布者和订阅者不必相互知道对方所在的位置3、发布者/订阅者是异步模式,发布者可不断地生产消息,订阅者则可异步地得到消息通知pub/sub的使用场景即时聊天、消息推送、异步写日志创建订阅频道log[原创 2016-08-06 21:03:44 · 1676 阅读 · 0 评论 -
redis启动提示vm.overcommit_memory、somaxconn警告错误
1、WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.2、WARNING overcommit_memory is set to 0! Background save may fail u原创 2016-09-04 23:12:51 · 9860 阅读 · 1 评论 -
centos完美搭建redis3.0集群并附测试
由于最小的redis集群需要3个主节点,一台机器可运行多个redis实例,我搭建时使用两台机器,6个redis实例,其中三个主节点,三个从节点作为备份网上很多使用单台服务器开6个端口,操作差不多,只是配置基本相对简单点,多台服务器更接近生产环境,本着少说多做的原则,先装好再剖析原创 2016-08-06 06:50:25 · 8779 阅读 · 11 评论 -
redis限制单ip、单用户的访问次数
有时候我们需要限制一个api或页面访问的频率,例如单ip或单用户一分钟之内只能访问多少次 类似于这样的需求很容易用Redis来实现<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth("php001");//这个key记录该ip的访问次数 也可改成用户id $key =原创 2016-07-07 10:57:18 · 16763 阅读 · 6 评论 -
php操作redis cluster集群成功实例
java操作redis cluster集群可使用jredisphp要操作redis cluster集群有两种方式:1、使用phpredis扩展,这是个c扩展,性能更高,但是phpredis2.x扩展不行,需升级phpredis到3.0,但这个方案参考资料很少2、使用predis,纯php开发,使用了命名空间,需要php5.3+,灵活性高我用的是predis,下载地址https:原创 2016-08-06 17:18:50 · 7511 阅读 · 3 评论