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程序设计有所帮助。