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

来源:互联网 发布:开淘宝店卖什么好啊 编辑:程序博客网 时间:2024/05/01 15:49

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

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

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


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

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

先用dpkg看了一下redis的版本

debian:~$ dpkg -l redis-serverDesired=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.gztar -zxf redis-2.4.4.tar.gz

2. 编译

cd redis-2.4.4make

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 6378redis> incr dd(integer) 1redis> incr dd(integer) 2redis> incr dd(integer) 3redis> incrby dd 50(integer) 53redis> expire dd 600(integer) 1redis> get dd53redis> incr dd(integer) 54