[Database] Redis (1)

  Redis 是一个高性能的key-value内存数据库。 这不仅性能强劲,而且还具有复制、持久化、分片特性。 它支持存储的value类型包括STRING(字符串)、LIST(链表)、SET(集合)、HASH(散列)、ZSET(有序集合)等。redis还支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

我们用 Python 来联接操作试试

Python联接代码

代码
abeen@localhost:~/mytest$ cat my_redis.py
#! /usr/bin/env python
#
_*_ coding:utf-8 _*_

import redis

# Redis 操作调用
class My_Redis:

# 初始化配置信息
def__init__(self):
self.r
= redis.Redis(host='192.168.1.3', port=6379, db=0)

def GetInstance(self):
return self.r

def Set(self, object_name, object):
self.r.set(object_name, object)

def Get(self, object_name):
return self.r.get(object_name)

导入

In [1]: ls
my_redis.py
* my_redis.pyc mytest.py*
In [
2]: from my_redis import My_Redis
In [
3]: r = My_Redis().GetInstance()

字符串操作

代码
In [4]: r.set('strName','shan shan') //保存字符串
Out[
4]: True
In [
5]: r.get('strName') //取字符串
Out[
5]: 'shan shan'

In [
7]: r.exists('strName') //检查是否存在
Out[
7]: True

In [
8]: r.type('strName') //查看类型
Out[
8]: 'string'

In [
9]: r.keys() //查看所有keys
Out[
9]:['book', 'list', 'set1', 'id', 'list2', 'o', '', 'name', 'a', 'kv', 'b', 's', 'c', 'shanshan', 'strName']

In [
10]: r.rename('strName','strNewName')//修改键名
Out[
10]: True
In [
12]: r.keys()
Out[
12]:['book', 'list', 'set1', 'id', 'list2', 'o', '', 'name', 'a', 'kv', 'b', 's', 'c', 'strNewName', 'shanshan']
In [
13]: r.get('strNewName')
Out[
13]: 'shan shan'

In [
14]: r.dbsize()//总键数
Out[
14]: 15

In [
15]: r.set('abeen','yeah my am abeen')
Out[
15]: True
In [
16]: r.mget(['strNewName','abeen']) //一次取多个键值
Out[
16]: ['shan shan', 'yeah my am abeen']

In [
17]: r.getset('abeen','abeen new message')//替换值
Out[
17]: 'yeah my am abeen'
In [
18]: r.get('abeen')
Out[
18]: 'abeen new message'

列表操作

代码
In [5]: r.lpush('listAB','shan shan') //加入值
Out[
5]: True
In [
6]: r.lpush('listAB','shan shan')
Out[
6]: True
In [
7]: r.lpush('listAB','shan shan')
Out[
7]: True
In [
11]: r.lrange('listAB', 0, r.llen('listAB'))//显示
Out[
11]: ['shan shan', 'shan shan', 'shan shan']

In [
12]: r.lset('listAB', 0, 'abeen') //修改0索引值
Out[
12]: True
In [
13]: r.lset('listAB',1, 'qiqi')//修改1索引值
Out[
13]: True
In [
14]: r.lrange('listAB', 0, r.llen('listAB'))
Out[
14]: ['abeen', 'qiqi', 'shan shan']

In [
15]: r.rpush('listAB','abeen1') //头部插入值
Out[
15]: True
In [
16]: r.lrange('listAB', 0, r.llen('listAB'))
Out[
16]: ['abeen', 'qiqi', 'shan shan', 'abeen1']
In [
17]: r.lpush('listAB','abeen2') //尾部插入值
Out[
17]: True
In [
18]: r.lrange('listAB', 0, r.llen('listAB'))
Out[
18]: ['abeen2', 'abeen', 'qiqi', 'shan shan', 'abeen1']

In [
19]: r.ltrim('listAB',0,1) //消减值
Out[
19]: True
In [
20]: r.lrange('listAB', 0, r.llen('listAB'))
Out[
20]: ['abeen2', 'abeen']

In [
22]: r.lpop('listAB') //尾部移除值
Out[
22]: 'abeen2'
In [
23]: r.lrange('listAB', 0, r.llen('listAB'))
Out[
23]: ['abeen']

 

--------------------------------------------------------

更多相关操作和信息请参考

Redis

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

API Reference

redis-cheatsheet-v1.pdf

posted @ 2010-07-07 18:40  ABeen  阅读(505)  评论(0编辑  收藏  举报