redis之字符串
【1】set
# 1 SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
res = conn.set(name='name', value='green')
print(res) # 插入成功后返回True
# 1.1 设置过期时间
conn.set(name='name', value='green', ex=5) # ex=5 在5秒后过期
conn.set(name='age', value='18', px=5000) # pzx=5 在5000毫秒后过期
# 1.2 参数nx=True 只有name不存在时,当前set操作才执行,反之则修改不了
res = conn.set(name='name', value='hahaha', nx=True)
print(res) # None
# 1.3 参数 xx=True 只有name存在时,当前set操作才执行,反之则修改不了
res = conn.set(name='name', value='hqq', xx=True) # name存在
print(res) # True
res = conn.set(name='high', value='180', xx=True) # high不存在
print(res) # None
【2】setnx
# 2 setnx(name, value) 等同于 conn.set('name','666',nx=True)
# 设置值,只有name不存在时,执行设置操作(添加),如果存在,不会修改
【3】setex
# name是键 time是几米后失效 value是值
conn.setex(name='name', time=5, value='五秒后删除')
【4】psetex
# 4 psetex(name, time_ms, value) 过期时间毫秒
# conn.psetex('hobby',5000,'sss')
【5】mset
# 批量设置
conn.mset({'color': 'black', 'hobby': '篮球'})
【6】get
# get 命令用于获取指定 key 的值。如果 key 不存在,返回 None 。如果key 储存的值不是字符串类型,返回一个错误。
print(conn.get('name')) # green
print(conn.get('hobby')) # [篮球,洗脚]
print(conn.get('girl')) # None
【7】mget
# 批量获取
res = conn.mget('color','hobby')
print(res) # ['black', '篮球']
# 也可以用列表传键值
res = conn.mget(['color','hobby'])
print(res) # ['black', '篮球']
【8】getset
# 获取值 然后设置新值
res = conn.getset(name='color', value='pink')
print(res) # black 是原来的值
相比先get 后 set 的优势
使用GETSET命令可以提高操作的效率和可靠性,尤其是在需要保证操作原子性和减少通信开销的场景下。
【9】getrange
# 截取字符串 (字节) 左右都是闭和的区间
res = conn.getrange(key='color', start=0, end=2) # pink
print(res) # pin
【10】setrange
# 用于修改指定键的字符串值的一部分,
# 从指定偏移量开始,替换为给定值。
# 如果键不存在,将创建一个新的字符串,
# 并在必要时用空白填充以满足指定的偏移量。
res = conn.setrange(name='color', offset=3, value='yellow') # 从pink 变成 pinkyellow
【11】setbit
【12】getbit
【13】bitcount
【14】bitop
【15】strlen
# 用于获取指定键的字符串值的长度。如果键不存在,返回0。
res = conn.strlen(name='color') # 存在
print(res) # 9
res = conn.strlen(name='no_exits') # 不存在
print(res) # 0
【16】incr
# 用于将指定键的值增加1。
# 如果键不存在,会先将其设置为0然后再执行增加操作。
# 如果键的值不能被解释为整数,那么命令会返回一个错误。
res = conn.incr(name='count') # count的初始值是0
print(res) # 1
res = conn.incr(name='count', amount=2) # 设置每次增加的数字 初始值是 0
print(res) # 加2 得到 2
res = conn.incr(name='color') # color的值不是一个数字 所以会报错
【17】incrbyfloat
# 命令用于将指定键的值增加指定的浮点数增量。
# 如果键不存在,会先将其设置为0然后再执行增加操作。
# 如果键的值不能被解释为浮点数,那么命令会返回一个错误。
key:要增加的键。
increment:要增加的浮点数增量。
res = conn.incrbyfloat(name='count', amount=6.6)
print(res)
【18】decr
# 用于将指定键的值减少1。
# 如果键不存在,会先将其设置为0然后再执行减少操作。
# 如果键的值不能被解释为整数,那么命令会返回一个错误。
key:要减少的键。
res = conn.decr(name='count')
print(res)
【19】append
# 用于在指定键的字符串值后追加指定的值。
# 如果键不存在,会先创建一个新的字符串,然后再执行追加操作。
# 如果键的值不是字符串类型,那么命令会返回一个错误。
key:要追加值的键。
value:要追加的字符串值。
res = conn.append(key='hobby',value='跳')
# res 返回的是追加过后的字节的长度