![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
hobbs136
这个作者很懒,什么都没留下…
展开
-
Redis实战系列(1) 运行多个实例以充分发挥多核处理器的能力
我们知道Redis是用"单线程-多路复用io模型"来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也会下降。而单一线程也只能用到一个cpu核心,所以可以在同一个多核的服务器中,可以启动多个实例,组成master-原创 2012-05-31 14:49:04 · 12073 阅读 · 0 评论 -
Redis实战系列(2) 使用List结构构造高效的队列系统
Redis 提供了brpop blpop brpoplpush三个阻塞命令来监听一个List数据结构。下面是php脚本server.php$redis = new Redis();$redis->connect('127.0.0.1');while(true){ $data = $o->brpop(array('key1','key2'), 30); var_dump($data原创 2012-06-01 11:39:55 · 10957 阅读 · 0 评论 -
Redis实战系列(3) 使用hashtable和hash-max-zipmap-entries优化内存使用
在我的系统中大约有50000个用户,每个用户有nickname1、nickname2、nickname3、nickname4、profile_id。对于上面几个属性来说,每个用户都是唯一的,而用户信息大概有70个字段。我用user:info:$profile_id作为一个hashtable的key来存储一个用户的所有信息。而系统要求能用nickname1、nickname2、nickname3、n原创 2012-06-02 15:12:58 · 10864 阅读 · 1 评论 -
Redis实战系列(5) phpredis的brpop问题
使用phpredis的brPop实现消息队列时,发现每隔3秒便会出现read error on connection,而brPop的timeout参数是58,也就是默认的php socket超时时间减去2。redis server的timeout已经是0。 php的default_socket_timeout=-1,但是还是3秒的周期出现异常。最后发现是connect时传入了timeout=3,将原创 2012-06-07 14:18:56 · 2166 阅读 · 2 评论 -
Redis实战系列(6) 利用lua对redis特定类型元素的list进行分段
只对排序的数字list进行分段存取,性能上有所下降,但是没有测试下降多少list_add.lualocal config = redis.call('config','get','list-max-ziplist-entries')local maxzipNum=tonumber(config[2])local metainfo=KEYS[1]..':split:met原创 2012-06-07 14:19:48 · 3291 阅读 · 0 评论 -
Redis实战系列(5) phpredis的brpop问题
使用phpredis的brPop实现消息队列时,发现每隔3秒便会出现read error on connection,而brPop的timeout参数是58,也就是默认的php socket超时时间减去2。redis server的timeout已经是0。 php的default_socket_timeout=-1,但是还是3秒的周期出现异常。最后发现是connect时传入了timeout=3,将原创 2012-06-07 14:18:55 · 8189 阅读 · 1 评论