赞
踩
官网:https://redis-py.readthedocs.io/en/stable/
pip install redis
import redis
connect = redis.Redis(host='127.0.0.1',port=6379,decode_responses=True)
connect.set('test','哈哈哈哈')
print(connect.get('test'))
import asyncio
import redis.asyncio as redis
async def run():
async with redis.Redis(host='127.0.0.1',port=6379,decode_responses=True) as connect:
await connect.set('test','我是异步')
result = await connect.get('test')
print(result)
asyncio.run(run())
redis.Redis(
host='localhost', #ip地址
port=6379, #端口
db=0, #数据库,默认 0
password=None, #密码
single_connection_client=False, #True,不使用连接池
connection_pool=None, #连接池
decode_responses=False, #True时,将返回结果decode,即将bytes类型改为默认utf-8
socket_timeout=None, #响应的时间
socket_connect_timeout=None, #建立连接超时时间
retry_on_timeout=False, #True时, 命令超时后,将会重试一次, 重试成功则正常返回; 失败则抛出timeout异常;False时直接抛出异常
retry_on_error=None, #重试错误列表
max_connections=None, #最大连接数
)
import redis.asyncio as redis
redis.Redis(
host='localhost', #ip地址
port=6379, #端口
db=0, #数据库,默认 0
password=None, #密码
single_connection_client=False, #True,不使用连接池
connection_pool=None, #连接池
decode_responses=False, #True时,将返回结果decode,即将bytes类型改为默认utf-8
socket_timeout=None, #响应的时间
socket_connect_timeout=None, #建立连接超时时间
retry_on_timeout=False, #True时, 命令超时后,将会重试一次, 重试成功则正常返回; 失败则抛出timeout异常;False时直接抛出异常
retry_on_error=None, #重试错误列表
max_connections=None, #最大连接数
)
'''
设置键和值(字符串类型)
ex - 过期时间(秒)
px - 过期时间(毫秒)
nx - 如果设置为True,则只有name不存在时,当前set操作才执行
xx - 如果设置为True,则只有name存在时,当前set操作才执行
'''
connect.set('test','哈哈哈哈')
'''
name:键值名
start:开始index
end:结束index,不包含结束index的字符
'''
connect.set('test','哈哈哈哈')
print(connect.getrange('test', 0, 2))
connect.lpush('test_list',1,2,3,4)
'''
name - redis的name
where - BEFORE或AFTER
refvalue - 标杆值,即:在它前后插入数据
value - 要插入的数据
'''
connect.linsert('test_list','BEFORE','2','5')
connect.blpop(['test_list','test_list1'], timeout=2)
'''
src - 要取数据的列表的 name
dst - 要添加数据的列表的 name
'''
connect.rpoplpush('test_list','test_list1')
'''
src - 取出并要移除元素的列表对应的name
dst - 要插入元素的列表对应的name
timeout - 当src对应的列表中没有数据时,阻塞等待其有数据的超时时间(秒),0 表示永远阻塞
'''
connect.brpoplpush('test_list','test_list1')
'''
name - redis的name
cursor - 游标(基于游标分批取获取数据)
match - 匹配指定key,默认None 表示所有的key
count - 每次分片最少获取个数,默认None表示采用Redis的默认分片个数
'''
connect.hscan('test')
'''
match - 匹配指定key,默认None 表示所有的key
count - 每次分片最少获取个数,默认None表示采用Redis的默认分片个数
'''
test = connect.hscan_iter('test')
for i in test:
print(i)
connect.hdel('test','name') #删除一个
connect.hdel('test',['name','age']) #删除多个
connect.sadd('test_set',1,2,3,4,5)
connect.sdiff(['test_set','test_set1','test_set2'])
connect.sdiffstore('new_test_set',['test_set','test_set1','test_set2'])
'''
name - redis的name
mapping - 添加到集合的键值对
nx - 强制ZADD只创建新元素而不更新已经存在的元素的分数。
xx - 强制ZADD只更新已经存在的元素的分数存在。不会添加新元素。
ch - 将返回值修改为已更改的元素数。更改的元素包括添加的新元素和元素谁的分数变了。
incr - 修改ZADD的行为像ZINCRBY。在这种模式下,只有a可以指定单个元素/分数对,分数是数量现有的分数将增加到。使用此模式时ZADD的返回值将是元素的新分数。
LT - 仅在新分数小于时更新现有元素当前分数。这个标志不会阻止添加新元素。
GT - 仅在新分数大于时更新现有元素当前分数。这个标志不会阻止添加新元素。
'''
connect.zadd('test',{'key1': 20,'key2': 10})
'''
name - redis的name
start - 有序集合索引起始位置(非分数)
end - 有序集合索引结束位置(非分数)
desc - 排序规则,默认按照分数从小到大排序
withscores - 是否获取元素的分数,默认只获取元素的值
score_cast_func - 对分数进行数据转换的函数
'''
connect.zrange('test',0,1,withscores=True)
'''
name - redis的name
min - 最小值
max - 最大值
start - 有序集合索引起始位置(非分数)
num - 获取数量
withscores - 是否获取元素的分数,默认只获取元素的值
score_cast_func - 对分数进行数据转换的函数
'''
connect.zrangebyscore('test',min=0,max=10,start=0,num=1,withscores=True)
'''
save - 也会强制执行DB保存操作
nosave - 将阻止数据库保存操作,即使有一个或多个保存点配置
now - 跳过等待滞后副本,即它绕过了第一步关机顺序
force - 忽略任何通常会阻止服务器退出的错误
abort - 取消正在进行的关机,不能与其他标志结合使用
'''
'''
name - redis的name
time - 过期时间
nx - 仅当密钥没有过期时设置过期
xx - 仅当密钥已存在过期时才设置过期
gt - 仅当新过期时间大于当前过期时间时设置过期时间
lt - 仅在新到期时间小于当前到期时间时设置到期时间
'''
'''
name - redis的name
when - 可以表示为整数表示unix时间或Python datetime对象
nx - 仅当密钥没有过期时设置过期
xx - 仅当密钥已存在过期时才设置过期
gt - 仅当新过期时间大于当前过期时间时设置过期时间
lt - 仅在新到期时间小于当前到期时间时设置到期时间
'''
'''
name - redis的name
time - 过期时间
nx - 仅当密钥没有过期时设置过期
xx - 仅当密钥已存在过期时才设置过期
gt - 仅当新过期时间大于当前过期时间时设置过期时间
lt - 仅在新到期时间小于当前到期时间时设置到期时间
'''
'''
name - redis的name
when - 可以表示为整数表示unix时间或Python datetime对象
nx - 仅当密钥没有过期时设置过期
xx - 仅当密钥已存在过期时才设置过期
gt - 仅当新过期时间大于当前过期时间时设置过期时间
lt - 仅在新到期时间小于当前到期时间时设置到期时间
'''
import redis
pool = redis.ConnectionPool(host='127.0.0.1',port=6379,decode_responses=True)
connect = redis.Redis(connection_pool=pool)
connect.set('name','数据库0')
print(connect.get('name'))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。