python操作redis
Posted ldsice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python操作redis相关的知识,希望对你有一定的参考价值。
安装
pip install redis
引入模块
import redis
连接
try:
r=redis.StrictRedis(host=‘localhost‘,port=6379)
except Exception,e:
print e.message
方式一:根据数据类型的不同,调用相应的方法,完成读写
更多方法同前面学的命令
r.set(‘name‘,‘hello‘)
r.get(‘name‘)
方式二:pipline
缓冲多条命令,然后一次性执行,减少服务器-客户端之间TCP数据库包,从而提高效率
pipe = r.pipeline()
pipe.set(‘name‘, ‘world‘)
pipe.get(‘name‘)
pipe.execute()
# set(name, value, ex=None, px=None, nx=False, xx=False)
# 在Redis中设置值,默认,不存在则创建,存在则修改
# 参数:
# ex,过期时间(秒)
# px,过期时间(毫秒)
# nx,如果设置为True,则只有name不存在时,当前set操作才执行
# xx,如果设置为True,则只有name存在时,当前set操作才执行
import redis
import time
pool = redis.ConnectionPool(host=‘localhost‘, port=6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
# r.set(‘food‘,‘mutton‘, ex=30)
# print(r.get(‘food‘))
# print(r.set(‘fruit‘, ‘watermelon‘, nx=True))
# print((r.set(‘fruit‘, ‘watermelon‘, xx=True)))
# r.setex("fruit2", 5, "orange")
# time.sleep(5)
# print(r.get("fruit2"))
# r.mget(‘k1‘:‘v1‘, ‘k2‘:‘v2‘)
# r.mset(k1="v1", k2="v2")
# print(r.mget("k1", "k2"))
# print(r.mget("k1"))
# 设置新值并获取原来的值
# print(r.getset("food", "aa"))
#获取子序列(根据字节获取,非字符)
r.set("cn_name", "峻熙大大")
print(r.getrange("cn_name", 0, 2))
print(r.getrange("cn_name", 0, -1))
r.set("en_name", "junxi")
print(r.getrange("en_name", 0, 2))
print(r.getrange("en_name", 0, -1))
#修改字符串内容,从指定字符串索引开始向后替换(新值太长时,则向后添加)
r.setrange("en_name", 1, "ccc")
print(r.get("en_name"))
#对name对应值的二进制表示的位进行操作
source = "陈思维"
source = "foo"
for i in source:
num = ord(i)
print(bin(num).replace(‘b‘, ‘‘))
import redis
import time
pool = redis.ConnectionPool(host=‘localhost‘, port = 6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
#单个增加--修改(单个取出)--没有就新增,有的话就修改
r.hset("hash1", "k1", "v1")
r.hset("hash1", "k2", "v2")
print(r.hkeys("hash1"))
print(r.hget("hash1", "k1"))
print(r.hmget("hash1", "k1", "k2"))
r.hsetnx("hash1", "k2", "v3")
print(r.hget("hash1", "k2"))
#批量增加(取出)
print("批量增加:-----------------------")
r.hmset("hash2", "k2":"v2", "k3": "v3")
print(r.hget("hash2", "k2"))
print(r.hmget("hash2", "k2", "k3"))
print(r.hmget("hash2", ["k2", "k3"]))
# 取出所有的键值对
print("取出所有的键值对:-----------------")
print(r.hgetall("hash1"))
# 得到所有键值对的格式 hash长度
print("得到所有键值对的格式 hash长度------")
print(r.hlen("hash1"))
# 得到所有的keys(类似字典的取所有keys)
print("得到所有的keys--------------------")
print(r.hkeys("hash1"))
#得到所有的value
print("得到所有的value--------------------")
print(r.hvals("hash1"))
#判断成员是否存在(类似字典的in)
print("判断成员是否存在--------------------")
print(r.hexists("hash1", "k4"))
print(r.hexists("hash1", "k1"))
#删除键值对
print("删除键值对--------------------------")
print(r.hgetall("hash1"))
r.hset("hash1", "k2", "v222")
r.hset("hash1", "k11", "v1")
r.hdel("hash1", "k1")
print(r.hgetall("hash1"))
#自增自减整数
print("自增自减整数--------------------------")
r.hset("hash1", "k3", 123)
r.hincrby("hash1", "k3", amount=-1)
print(r.hgetall("hash1"))
r.hincrby("hash1", "k4", amount=1)
print(r.hgetall("hash1"))
#取值查看--分片读取
print("取值查看--分片读取----------------------")
print(r.hscan("hash1"))
#利用yield封装hscan创建生成器
print("利用yield封装hscan创建生成器")
for item in r.hscan_iter(‘hash1‘):
print(item)
print(r.hscan_iter("hash1"))
import redis
pool = redis.ConnectionPool(host=‘localhost‘, port = 6379, decode_responses=True)
r = redis.Redis(connection_pool=pool)
#增加(类似于list的append,只是这里是从左边新增加)
# print("增加(类似于list的append,只是这里是从左边新增加)")
# r.lpush("list1", 11, 22, 33)
# print(r.lrange(‘list1‘, 0, -1))
#增加(从右边增加)--没有就新建
# print("增加(从右边增加)--没有就新建")
# r.rpush("list2", 11, 22, 33)
# print(r.llen("list2"))
# print(r.lrange("list2", 0, 3))
#往已经有的name的列表的左边添加元素
# print("往已经有的name的列表的左边添加元素")
# r.lpushx("list10", 10)
# print(r.llen("list10"))
# print(r.lrange("list10", 0, -1))
#
# r.lpush("list2", 77)
# print(r.llen("list2"))
# print(r.lrange("list2", 0, -1))
#往已经有的name的列表的右边添加元素
# r.rpushx("list10", 10)
# print(r.llen("list10"))
# print(r.lrange("list10", 0, -1))
#
# r.lpushx("list2", 77)
# print(r.llen("list2"))
# print(r.lrange("lsit2", 0, -1))
#新增
# print("新增")
#
# r.linsert("list2", "before", "11", "00")
# print(r.lrange("list2", 0, -1))
#
# r.lset("list2", 0, -11)
# print(r.lrange("list2", 0, -1))
#删除
print("删除")
r.lrem("list2", "-11", 1)
print(r.lrange("list2", 0, -1))
以上是关于python操作redis的主要内容,如果未能解决你的问题,请参考以下文章
redis 基本操作-python 使用redis-手机验证接口-发送短信接口