标签:
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz $ tar xzf redis-3.0.3.tar.gz $ cd redis-3.0.3 $ make
$ src/redis-server
# 开启服务,默认端口号:6379
$ sudo pip install redis or $ sudo easy_install redis or from source $ sudo python setup.py install
>>> import redis >>> r = redis.StrictRedis(host=‘localhost‘, port=6379, db=0) >>> r.set(‘foo‘, ‘bar‘) True >>> r.get(‘foo‘) ‘bar‘
管道(pipeline)是redis在提供单个请求中缓冲多条服务器命令的基类的子类。它通过减少服务器-客户端之间反复的TCP数据库包,从而大大提高了执行批量命令的功能。
>>> p.set(‘hello‘,‘redis‘).p.sadd(‘faz‘,‘baz‘).incr(‘num‘).execute()
当有大量类型文档的对象,文档的内容都不一样时,(即“表”没有固定的列),可以使用hash来表达。
>>> r.hset(‘users:jdoe‘, ‘name‘, "John Doe") 1L >>> r.hset(‘users:jdoe‘, ‘email‘, ‘John@test.com‘) 1L >>> r.hset(‘users:jdoe‘, ‘phone‘, ‘1555313940‘) 1L >>> r.hincrby(‘users:jdoe‘, ‘visits‘, 1) 1L >>> r.hgetall(‘users:jdoe‘) {‘phone‘: ‘1555313940‘, ‘name‘: ‘John Doe‘, ‘visits‘: ‘1‘, ‘email‘: ‘John@test.com‘} >>> r.hkeys(‘users:jdoe‘) [‘name‘, ‘email‘, ‘phone‘, ‘visits‘]
标签:
原文地址:http://www.cnblogs.com/zhxhdean/p/4773627.html