redis 的 getSet方法的过程

String key= "key1";

String value = jedis.getSet(key, "0");

1、首先获取key1在redis的值,

 如果key1存在,则返回存在的值

如果key1不存在,则返回null

2、设置key1的值为“0”



完毕!!!

### Redis GETSET 命令详解 #### 设置并获取旧值 `GETSET`命令用于在Redis键中设置指定的字符串值,并返回该键之前的旧值。如果给定的键不存在,则将其视为持有空字符串作为旧值[^2]。 ```bash GETSET key value ``` - `key`: 要操作的目标键名。 - `value`: 将要存储的新值。 当执行此命令时,服务器会先保存当前键所关联的数据(如果有),再用新提供的值替换它;最后向客户端发送之前存在的数据副本。这种方式对于原子性读取和更新非常有用。 #### 返回结果处理 根据文档描述,在不同情况下会有不同的响应: - 如果键存在并且有先前的内容,则返回这个旧值; - 若键原本就不存在,则返回`(nil)`表示没有找到任何历史记录; - 当成功进行了赋值动作之后,无论是否存在过期时间属性都会被清除掉。 #### 实际应用案例展示 下面给出几个具体的例子来帮助理解如何运用`GETSET`: 假设有一个计数器场景,每次请求到来都要增加一次点击次数的同时还要知道上一秒内的总数是多少: ```python import redis r = redis.Redis(host='localhost', port=6379, db=0) # 初始状态可能为空或已有数值 last_count = r.get('click_counter') or b'0' print(f"Last second's count was {int(last_count)}") new_value = str(int(time.time())) current_count = r.getset('click_counter', new_value) print(f"Now the counter has been reset to '{current_count.decode()}' at timestamp {new_value}") ``` 这段代码片段展示了怎样利用Python中的`redis-py`库调用`getset()`方法实现上述逻辑功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值