Loading

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的值不是一个数字 所以会报错

image-20240515163557566

【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 返回的是追加过后的字节的长度
posted @ 2024-05-15 20:28  HuangQiaoqi  阅读(1)  评论(0编辑  收藏  举报