redis老版本中的expire问题及新版本的安装测试

今天发现redis数据库中一个值总是1,但是程序中确实对这个值incr了N多次

每次incr了之后,都设置了一个expire时间,试着将expire这句注释掉之后,这个值就一直在增长

难道是expire不对吗?查找了redis的官方文档,没错啊,于是自己测试了一下


debian:~$ redis-cli
redis> incr dd
(integer) 1
redis> incr dd
(integer) 2
redis> incr dd
(integer) 3
redis> incrby dd 50
(integer) 53
redis> expire dd 600
(integer) 1
redis> get dd
53
redis> incr dd
(integer) 1

原来在expire之后,再incr就会重新从1开始,怪不得我那个值老是的呢,这明显是一个bug嘛。

先用dpkg看了一下redis的版本

debian:~$ dpkg -l redis-server
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                         Version                      Description
+++-============================-============================-========================================================================
ii  redis-server                 2:1.2.6-1                    Persistent key-value database with network interface

原来是1.2.6的,现在最新的redis都2.4.4了啊。debian上的软件版本够老的!我的debian可是最新的debian 6啊。

于是自己下载redis代码,编译之后,用新版本的测试了一下

1. 下载解压

wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
tar -zxf redis-2.4.4.tar.gz

2. 编译

cd redis-2.4.4
make

3. 运行

先把redis.conf改一下,把daemonize改为yes,端口改为6378,然后启动redis

./src/redis-server redis.conf

4. 测试,

还是和老版本中的一样,但是结果是正确的。expire之后再incr,不会从1开始了

debian:~/software/redis-2.4.4$ redis-cli -p 6378
redis> incr dd
(integer) 1
redis> incr dd
(integer) 2
redis> incr dd
(integer) 3
redis> incrby dd 50
(integer) 53
redis> expire dd 600
(integer) 1
redis> get dd
53
redis> incr dd
(integer) 54


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值