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之后,将之前的数据重新加载,可谓:方便、高效、安全。