一、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‘))
运行结果:
时间: 2024-11-06 20:25:07