Redis中set、setnx、setex的使用区别及说明

 更新时间:2025年11月05日 14:14:49   作者:梦想不会灭  
本文介绍了Redis中的SET、SETEX、SETNX和GETSET命令,分别用于设置键值对、设置带过期时间的键值对、仅当键不存在时设置键值对以及获取并设置键值对,同时,还提到了expire和persist命令用于设置和清除键的过期时间

1、SET

	SET key value

含义:

  • 将字符串值 value 关联到 key 。
  • 如果 key 已经持有其他值, SET 就覆写旧值,无视类型。

2、SETEX

	SETEX key seconds value

含义:

  • 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。
  • 如果 key 已经存在, SETEX 命令将覆写旧值。

返回值:

  • 设置成功时返回 OK 。
  • 当 seconds 参数不合法时,返回一个错误。

3、SETNX

	SETNX key value 

含义:

  • 将 key 的值设为 value ,当且仅当 key 不存在。
  • 若给定的 key 已经存在,则 SETNX 不做任何动作。
  • SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。

返回值:

  • 设置成功,返回 1 。
  • 设置失败,返回 0 。

4、GETSET

	GETSET key value 

含义:

  • 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
  • 当 key 存在但不是字符串类型时,返回一个错误。

返回值:

  • 返回给定 key 的旧值。
  • 当 key 没有旧值时,也即是, key 不存在时,返回 null 。

备注:

1、expire命令可以设置超时,让现有的key获得超时时间

	Expire KEY_NAME TIME_IN_SECONDS

2、persist命令可以清除超时,让key变成一个永久的key

	PERSIST KEY_NAME

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Redis实现JWT令牌主动失效机制

    使用Redis实现JWT令牌主动失效机制

    JWT是一种轻量级的身份验证和授权机制,它是一种 JSON 格式的数据串,通常用于客户端和服务端之间的单点登录(Single Sign-On, SSO)场景,本文给大家介绍了如何使用Redis来实现JWT令牌主动失效机制,需要的朋友可以参考下
    2024-08-08
  • Redis报错UnrecognizedPropertyException: Unrecognized field问题

    Redis报错UnrecognizedPropertyException: Unrecognized 

    在使用SpringBoot访问Redis时,报错提示识别不了属性headPart,经过排查,发现并非Serializable或getset方法问题,而是存在一个方法getHeadPart,但无headPart属性,解决方案是将getHeadPart改为makeHeadPart
    2024-10-10
  • Redis分布式锁的10个坑总结

    Redis分布式锁的10个坑总结

    日常开发中,经常会碰到秒杀抢购等业务,为了避免并发请求造成的库存超卖等问题,我们一般会用到Redis分布式锁,但是使用Redis分布式锁,很容易踩坑哦,本文将给大家分析阐述,Redis分布式锁的10个坑,需要的朋友可以参考下
    2023-05-05
  • Redis 内存淘汰策略深度解析(最新推荐)

    Redis 内存淘汰策略深度解析(最新推荐)

    本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Random等,并分析了它们的应用场景,同时,文章还介绍了Redis内存淘汰的底层实现,包括LRU/LFU的近似算法和淘汰流程,感兴趣的朋友一起看看吧
    2025-03-03
  • Redis Sentinel实现高可用配置的详细步骤

    Redis Sentinel实现高可用配置的详细步骤

    这篇文章主要介绍了Redis Sentinel实现高可用配置的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Redis添加商铺查询缓存功能实现

    Redis添加商铺查询缓存功能实现

    文章主要介绍了如何使用流程图来设计实现逻辑,并详细讲解了Service层的实现方法,本文结合示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2025-03-03
  • 关于SpringBoot 使用 Redis 分布式锁解决并发问题

    关于SpringBoot 使用 Redis 分布式锁解决并发问题

    针对上面问题,一般的解决方案是使用分布式锁来解决,本文通过场景分析给大家介绍关于SpringBoot 使用 Redis 分布式锁解决并发问题,感兴趣的朋友一起看看吧
    2021-11-11
  • SpringBoot整合Redis实现序列化存储Java对象的操作方法

    SpringBoot整合Redis实现序列化存储Java对象的操作方法

    这篇文章主要介绍了SpringBoot整合Redis实现序列化存储Java对象,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • redis缓存与数据库一致性的问题及解决

    redis缓存与数据库一致性的问题及解决

    这篇文章主要介绍了redis缓存与数据库一致性的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • redis启动报错Can‘t open the log file: No such file or directory

    redis启动报错Can‘t open the log file: No such file or d

    这篇文章主要介绍了redis启动报错Can‘t open the log file: No such file or directory问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论