首页 > 数据库 >redis之字符串

redis之字符串

时间:2024-05-15 20:44:57浏览次数:23  
标签:set name res redis value print 字符串 conn

【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 返回的是追加过后的字节的长度

标签:set,name,res,redis,value,print,字符串,conn
From: https://www.cnblogs.com/Hqqqq/p/18194646

相关文章

  • django中使用redis
    【1】通用方式########写个pool.pyimportredisPOOL=redis.ConnectionPool(max_connections=10,decode_responses=True)######在哪里用,导入用即可fromutils.poolimportPOOLimportredisclassRedisView(ViewSet):deflist(self,request):conn=red......
  • redis通用操作
    通用操作的意思就是与数据类型无关,都可以操作的方法【1】delete#删除某个键对应的值可用一次性删多个res=conn.delete('color')#删除color对应的数据【2】exists#判断某个键是否存在存在返回1不存在返回0res=conn.exists('girls')【3】keys#返回所有键或......
  • redis之list类型
    在redis中,list类型是一种有序的字符串元素集合。redis的list和python中的列表类型有一些相似之处,但也有一些不同点redis列表类型的特点有序性:列表中的元素是按照插入顺序存储的,每个元素都有一个索引位置。允许重复元素:列表中可以包含重复的元素。支持头部和尾部的操作:Redis......
  • Redis总结
    【一】redis基础【二】python连接redis【三】Redis连接池【四】redis之字符串【五】redis之哈希类型【六】redis之list类型【七】redis通用操作【八】django中使用redis......
  • Redis连接池
    【一】Redis连接池的优点​ Redis连接池的存在主要是为了优化Redis客户端和Redis服务器之间的连接管理,提升性能和稳定性。具体而言,Redis连接池具有以下几个优点:提升响应速度:由于连接池中已经存在可用的连接,客户端可以快速获取连接并执行操作,而不需要等待新的连接建立过程。这......
  • redis基础
    redis介绍Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供l......
  • python操作redis
    redis安装:https://github.com/tporadowski/redis/releases/一python操作redis1普通链接pipinstallredisimportredisconn=redis.Redis(host="localhost",port=6379,db=0,password=None)conn.set('name','lqz')con......
  • django中使用redis
    django中使用redis方式一:通用方式pool.pyimportredisPOOL=redis.ConnectionPool(max_connections=10,decode_responses=True)在哪里用,导入用即可fromutils.poolimportPOOLimportredisclassRedisView(ViewSet):deflist(self,request):conn=......
  • 后端跨域cookie问题与spring-session-data-redis
    背景1、后端统一接入了公司内部登录系统,登录后cookie信息在域名:test.net.cn下。Set-Cookie:SESSION=09a2f617-66a0-4e02-b99f-130d83900321;Domain=test.net.cn;Path=/;HttpOnly;SameSite=Lax2、当我们的系统接入到统一登录系统后,若访问域名为a.test.net.cn,则不会出现问题,因......
  • .NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis)
    .NET缓存里分了几类,主要学习内存缓存、分布式缓存一、内存缓存IMemoryCache#1、Program注入缓存builder.Services.AddMemoryCache();2、相关方法及参数Get、TryGetValue、GetOrCreate、GetOrCreateAsync、Set、Remove,关键参数是过期时间,GetOrCreate、GetOrCreateAsync是通......