python的redis用法

pythonredis用法

2011-09-27 16:09

#! /usr/bin/env python
#coding=utf-8
import redis
print redis.__file__
#
 连接,可选不同数据库
r = redis.Redis(host='10.0.1.7', port=6379, db=1)

# -------------------------------------------
#
 看信息
info = r.info()
for key in info:
 

print "%s: %s" % (key, info[key])

#
 查数据库大小
print '\ndbsize: %s' % r.dbsize()

#
 看连接
print "ping %s" % r.ping()

#
 选数据库
#r.select(2)

#
 移动数据去2数据库
#r.move('a',2)

#
 其他
#r.save('a') #
 存数据
#r.lastsave('a') #
 取最后一次save时间
#r.flush()  #
刷新
#r.shutdown() #
关闭所有客户端,停掉所有服务,退出服务器
#
#--------------------------------------------
#
 它有四种类型: string(key,val)list(序列)set(集合)zset(有序集合,多了一个顺序属性)
#
 不知道你用的哪种类型?
# print r.get_type('a') #
可以告诉你
# -------------------------------------------
# string
操作
print '-'*20
#
 塞数据
r['c1'] = 'bar'
#
或者
r.set('c2','bar')
#
这里有个 getset属性,如果为Tr 可以在存新数据时将上次存储内容同时搞出来
print 'getset:',r.getset('c2','jj')
#
如果你想设置一个递增的整数 每执行一次它自加1
print 'incr:',r.incr('a')
#
如果你想设置一个递减的整数 please:
print 'decr:',r.decr('a')

#
 取数据
print 'r['']:',r['c1']
#
或者
print 'get:',r.get('a')
#
或者 同时取一批
print 'mget:',r.mget('c1','c2')
#
或者 同时取一批 它们的名字(key)很像 而恰好你又不想输全部
print 'keys:',r.keys('c*')
#
又或者 你只想随机取一个:
print 'randomkey:',r.randomkey()


#
 查看一个数据有没有  1 0
print 'existes:',r.exists('a')

#
 删数据 1是删除成功 0None是没这个东西
print 'delete:',r.delete('cc')
#
 哦对了 它是支持批量操作的
print 'delete:',r.delete('c1','c2')

#
 其他
r.rename('a','c3') #
.改名
r.expire('c3',10) #
让数据10秒后过期 说实话我不太明白么意思
r.ttl('c3') #
看剩余过期时间 不存在返回-1

#--------------------------------
#
 序列(list)操作
print '-'*20
#
 它是两头通的
#
 塞入
r.push('b','gg')
r.push('b','hh')
# head
 属性控制是不是从另一头塞
r.push('b','ee')
#
 看长度
print 'list len:',r.llen('b')
#
 列出一批出来
print 'list lrange:',r.lrange('b',start=0,end=-1)

#
 取出一位
print 'list index 0:',r.lindex('b',0)

#
 修剪列表
#
start 大于end,则将这个list清空
print 'list ltrim :',r.ltrim('b',start=0,end=3) #
只留 03四位

#
 排序
#
 这可是个大工程

#--------------------------------
#
 集合(set)操作
#
 塞数据
r.sadd('s', 'a')

#
 判断一个set长度为多少 不存在为0
r.scard('s')

#
 判断set中一个对象是否存在
r.sismember('s','a')

#
 求交集
r.sadd('s2','a')
r.sinter('s1','s2')

#
求交集并将结果赋值
r.sinterstore('s3','s1','s2')

#
 看一个set对象
r.smembers('s3')

#
 求并集
r.sunion('s1','s2')
#
  我想聪明的你已经猜到了
#
求并集 并将结果返回
r.sunionstore('ss','s1','s2','s3')

#
 求不同
#
 s1中有,但在s2s3中都没有的数
r.sdiff('s1','s2','s3')
r.sdiffstore('s4','s1','s2')#
 这个你懂的

#
 取个随机数
r.srandmember('s1')

#-------------------------------------
#zset
 有序set
#'zadd', 'zcard', 'zincr', 'zrange', 'zrangebyscore', 'zrem', 'zscore'
#
 分别对应
#
添加, 数量, 自加1,取数据,按照积分(范围)取数据,删除,取积分

#
 我靠 你玩死我了 redis!
#
 今天在实验中,我尝试插入一条zset类型数据:
r1.zset(u'litao','book1',3)
#
 插入成功
#
 我继续插入
r1.zset(u'litao','book2',5)

#成功了

 


import time
t1 = time.time()
import redis
r = redis.Redis("localhost")
for i in xrange(1):
        a=r.set(i, i)
        b=r.get(i)
        print b

        r.lpush('book','book1')
        r.lpush('book','book2')
        print 'list llen:',r.llen('book')
        print 'list lrange:',r.lrange('book',start=0,end=-1)
        print 'list index:',r.lindex('book',1)

        r.sadd('litao','song1')
        r.sadd('litao','song2')
        print 'set scard:',r.scard('litao')
        print 'set sismember:',r.sismember('litao','song1')
        r.sadd('jingjie','song1')
        print 'sinter:',r.sinter('litao','jingjie')
        print 'set smembers:',r.smembers('litao')

        r.zadd(u'zset','litao',2)
        r.zadd(u'zset','jingjie',1)
        print 'zrange:',r.zrange('zset',0,-1)
        print 'zrangebyscore:',r.zrangebyscore('zset',1,1)



print time.time()-t1


http://blog.sina.com.cn/s/blog_881c165501017i0h.html

你可能感兴趣的:(python的redis用法)