python安装与使用redis的方法
本文实例讲述了python安装与使用redis的方法。分享给大家供大家参考,具体如下:
1、安装
好吧,我承认我只会最简单的安装:
sudoapt-getinstallredis-server
python支持包:(其实就一个文件,搞过来就能用)
sudoapt-getinstallpython-redis
2、配置
配置一下吧,默认配置文件在:"/etc/redis/redis.conf"
绑定ip:
"bind127.0.0.1″->"bind10.0.1.7″
将磁盘同步改为不同步或每秒同步,一直同步的话太慢了:
"appendfsyncalways"->"appendfsyncno"
检查一下后台执行是否打开:
"daemonizeyes"
或者其他你想设置的,例如:
连接超时时间:"timeout300″
运行级别:"loglevelnotice"(个人认为默认的这个就挺好,非出现大异常,不用改为debug)
3、使用
#!/usr/bin/envpython
#coding=utf-8
importredis
printredis.__file__
#连接,可选不同数据库
r=redis.Redis(host='10.0.1.7',port=6379,db=1)
#-------------------------------------------
#看信息
info=r.info()
forkeyininfo:
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,value)、list(序列)、set(集合)、zset(有序集合,多了一个顺序属性)
#不知道你用的哪种类型?
#printr.get_type('a')#可以告诉你
#-------------------------------------------
#string操作
print'-'*20
#塞数据
r['c1']='bar'
#或者
r.set('c2','bar')
#这里有个getset属性,如果为True可以在存新数据时将上次存储内容同时搞出来
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是删除成功0和None是没这个东西
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',head=True)
#看长度
print'listlen:',r.llen('b')
#列出一批出来
print'listlrange:',r.lrange('b',start=0,end=-1)
#取出一位
print'listindex0:',r.lindex('b',0)
#修剪列表
#若start大于end,则将这个list清空
print'listltrim:',r.ltrim('b',start=0,end=3)#只留从0到3四位
#排序
#这可是个大工程
#--------------------------------
#集合(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中有,但在s2和s3中都没有的数
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'www.liyi99.com','liwu',3)
#插入成功
#我继续插入
r1.zset(u'www.liyi99,com',u'\u9001\u793c',5)
#报错:
#UnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe4inposition0:ordinalnotinrange(128)
#这次插入的是礼物的中文词unicode编码
#为什么会失败那,这条数据是我从redis里面取出来然后没做任何修改再插入的阿
#redis返回和接受的数据类型都是unicode编码的阿
#好吧,我们再次插入试试
#再次插入
r1.zset('www.liyi99.com',u'\u9001\u793c',5)
#成功了
#插入
r1.zset('www.liyi99.com','礼物',5)
#依然成功,跟入redis.py1024行
returnself.send_command('ZADD%s%s%s\r\n%s\r\n'%(
key,score,len(member),member))
#哦万恶的编码转换!
#不过取的时候,不论第一个是何种类型的数据都无关系
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。