首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Redis应用

Posted on 2010-04-19 15:34  停留的风  阅读(2928)  评论(0编辑  收藏  举报

Redis介绍

      数据库主要类型有对象数据库,关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢;关系数据库就是平常说的MySQL,PostgreSQL这些熟的不能再熟的东西,至于键值数据库则是本文要着重说的,其代表主要有MemcacheDB,Tokyo Cabinet等等。

      Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT)等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。

      官方手册

 

安装redis-server

http://github.com/antirez/redis

tar zxvf redis.tar.gz
cd redis
make

 

由于没有make install,所以得把源代码目录里的关键文件手动复制到适当的位置:

cp redis.conf /etc/   #具体的配置参数可以到 /etc/redis.conf 进行设置,包括IP、Port、最大连接数、Master
cp redis-benchmark redis-cli redis-server /usr/bin/

 

测试运行:

redis-server /etc/redis.conf

确认运行了之后,可以用redis-benchmark命令测试看看,还可以通过redis-cli命令实际操作一下,比如:

redis-cli set foo bar
OK
redis-cli get foo
bar

 

在安装目录下面有:

/client-libraries/  这里面有各种客户端的库,ruby、python等,你可自己单独安装所需client

具体的安装、测试,详见:

http://code.google.com/p/redis/wiki/QuickStart

安装redis-client:

redis-py:
http://github.com/andymccurdy/redis-py/

 

测试使用:

>>> import redis
>>> r = redis.Redis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')   # or r['foo'] = 'bar'
True
>>> r.get('foo')   # or r['foo']
'bar'

注意:保证你的版本基本属于最新版本,这样才能保证client正常调用server。

 

应用场景:

       1)键值存储

       2)临时队列

       内存中临时处理的数据,比如常用的队列,如果使用关系数据库,则需要将数据从db调入内存,然后再处理db,频繁的访问db,效率必然不高。但是有了redis,我们可以方便的对一些临时数据进行处理,而且其支持文件持久化,哪怕中间出现当机,restart之后,将之前的数据重新加载,可谓:方便、高效、安全。