首页 > 其他 > 详细

第十 redis&rabbitMQ

时间:2017-07-26 16:17:59      阅读:261      评论:0      收藏:0      [点我收藏+]

 一、redis 操作

1.连接方式

1.1.插入键值对

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import redis

#插入一个键值对
r = redis.Redis(host=‘192.168.161.129‘,port=6379,password="60887")
r.set(‘foo‘,‘bar‘)
print(r.get(‘foo‘))

运行结果:

技术分享

1.2.连接池

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import redis

#创建一个连接池,避免每次建立、释放连接的开销
pool = redis.ConnectionPool(host=‘192.168.161.129‘,port=6379,password="60887")
r = redis.Redis(connection_pool=pool)
r.set(‘name‘,‘ckl‘)
print(r.get(‘name‘))

运行结果:

技术分享

2.string 类型

2.1.设置值过期时长


#ex:过期时长
r.set(‘age‘,20,ex=10)
print(r.get(‘age‘))
time.sleep(11)
print(r.get(‘age‘))

运行结果:

技术分享

十秒后失效

2.2.如果值不错在,则赋值


#age 不存在,执行操作
r.set(‘age‘,21,nx=True)
print(r.get(‘age‘))

运行结果:

技术分享

2.3.批量设值


#批量设值
r.mset({‘k1‘:‘v1‘,‘k2‘:‘v2‘})
print(r.mget(‘k1‘,‘k2‘))

运行结果:

技术分享

2.4.为某个键设置一个新的值,但返回旧的值


#设值新值,获取原来的值
print(r.getset(‘k1‘,‘md1‘))
print(r.get(‘k1‘))

运行结果:

技术分享

2.5.相当于切片


#获取返回值的范围
r.set(‘qc‘,‘lostAtShangHai‘)
print(r.getrange(‘qc‘,3,7))

运行结果:

技术分享

2.6.修改值的部分内容


#修改值的部分内容
r.setrange(‘qc‘,3,‘KKK‘)
print(r.get(‘qc‘))
#b‘losKKKShangHai‘

运行结果:

技术分享

2.7.相当于统计UV的方法


#统计UV
r.setbit(‘uv_count‘,5,1)
r.setbit(‘uv_count‘,8,1)
r.setbit(‘uv_count‘,6,1)
r.setbit(‘uv_count‘,6,1)
print(r.bitcount(‘uv_count‘))

运行结果:

技术分享

2.8.统计PV方法


#统计PV,
r.incr(‘pv_count‘,3)
r.incr(‘pv_count‘,3)
r.incr(‘pv_count‘,3)
r.incr(‘pv_count‘,3)
print(r.get("pv_count"))

运行结果:

技术分享

2.9.在值的后面增加内容

#在后面追加内容
r.set(‘wu‘,‘kaka‘)
print(r.get(‘wu‘))
r.append(‘wu‘,‘sasa‘)
print(r.get(‘wu‘))

运行结果:

技术分享

3.hash 类型

3.1.插入单条数据


#插入单条数据
r.hset(‘taihu‘,‘wuxi‘,‘yuantouzhu‘)
print(r.hscan(‘taihu‘))

运行结果:

技术分享

3.2.获取批量值


#获取批量值 r.hmset(
‘hubo‘,{‘qinghaihu‘:‘qinghai‘,‘panyanghu‘:‘panyang‘}) print(r.hmget(‘hubo‘,‘qinghaihu‘,‘panyanghu‘))

运行结果:

技术分享

3.3.获取所有键值


#获取所有键值
print(r.hgetall(‘hubo‘))

运行结果:

技术分享

3.4.获取键值对数量

#获取键值对的个数
print(r.hlen(‘hubo‘))

运行结果:

技术分享

4.list 类型

4.1.插入值,获取所有值

#获取所有的键值
r.lpush(‘diuList‘,11,22,44,66)
print(r.lrange(‘diuList‘,0,-1))

运行结果:

技术分享

4.2.插入值

#在值22的前面插入值88
r.linsert(‘diuList‘,‘BEFORE‘,22,88)
print(r.lrange(‘diuList‘,0,-1))

运行结果:

技术分享

4.3.获取第一个值及获取元素个数

#获取第一个值
print(r.lindex(‘diuList‘,0))

#获取元素个数
print(r.llen(‘diuList‘))

运行结果:

技术分享

5.set 类型

5.1.添加数据

r.sadd(‘SetA‘,‘888‘)
r.sadd(‘SetA‘,‘999‘)
r.sadd(‘SetB‘,‘444‘)
r.sadd(‘SetB‘,‘555‘)
print(r.sscan(‘SetA‘))
print(r.sscan(‘SetB‘))

运行结果:

技术分享

5.2.移动值

#将A的888移到B里
r.smove(‘SetA‘,‘SetB‘,‘888‘)
print(r.sscan(‘SetA‘))
print(r.sscan(‘SetB‘))

运行结果:

技术分享

 

第十 redis&rabbitMQ

原文:http://www.cnblogs.com/ckl893/p/7240047.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!