【Redis】String常用命令

博客主要介绍了Redis中String类型的适用场景,包括作为计数器、统计数量、存储粉丝数、对象缓存等。还列举了一系列操作,如字符串拼接、获取长度、自增自减、设置过期时间等,部分操作在分布式锁中有常用场景。

String适用场景

 既可以是字符串,也可以是数字

        1.计数器

        2.统计多单位的数量

        3.粉丝数

        4.对象缓存存储

1.字符串拼接

APPEND name 456    #将name的值后面拼接456
                    #如果本身键值对不存在,则会创建一个键为name,值为456的新的键值对
(integer) 6    #返回拼接完后的总长度(拼接前name的长度为3)

2.获取字符串长度

STRLEN name
(integer) 6    #长度为6

3.自增

默认自增为1

incr values
(integer) 2    #自增后的值为2

4.自减

decr values 
(integer) 1    #自减后的值为1

5.设置自增步长

INCRBY values 10
(integer) 11    #加完后为10
incr values
(integer) 12    #只能持续一次,不是每次都是按照10来增加

6.设置自减步长

DECRBY value 10
(integer) -10
#同上也是只能持续一次

7.获取字符串区间

GETRANGE name 0 3    #[0,3]端点包括,是闭区间
GETRANGE name 0 -1    #获取整个值的长度

8.修改指定区间的数据

GETRANGE name 0 -1
"hello,world"
SETRANGE name 4 123        #从name下标为4开始修改,替换后面长度为3的数据(因为“123”的长度为3)
(integer) 11
get name
"hell123orld"

9.设置一个键值对并指定过期时间

SETEX name2 30 hello     #设置键为name2值为hello的键值对,并将过期时间设为30s
#如果本身就有这个键值对了,那么则会覆盖

10.在设置之前判断值是否存在,不存在创建,存在就不创建(分布式锁中常用)

SETNX name 456
(integer) 0    #本身就有了,不成功
SETNX name2 456
(integer) 1    #本身有,成功

11.批量设置值

mset k1 v1 k2 v2 k3 v3 
keys *
1) "k3"
2) "name"
3) "name2"
4) "k2"
5) "k1"

12.批量获取值

 mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

13.批量设置值并判断是否存在

与10结合

MSETNX name name1 name2 name
(integer) 0    #本身都有

14.使用mset设置对象

mset user:1:name zhangsan user:1:age 2
#此代码相当于设置了一个user对象,id为1,其中name属性为zhangzsan,age属性为2
#格式为 对象名:id:属性键 属性值

15.使用mget查找对象

mget user:1:name user:1:age
1) "zhangsan"
2) "2"
#使用规则 对象名:id:键 值

16.getset

 GETSET name 123     #get➕set,相当于先get再set

### Redis 常用缓存操作命令 Redis 提供了丰富的命令用于操作缓存数据,涵盖字符串、哈希、列表、集合、有序集合等数据类型。以下是常用的缓存操作命令分类说明: #### 字符串String字符串Redis 中最基本的数据类型,支持存储单个键值对。 - `SET key value`:设置指定键的值。 - `GET key`:获取指定键的值。 - `INCR key`:将键的值递 1,适用于整数类型。 - `DECR key`:将键的值递减 1,适用于整数类型。 - `MSET key1 value1 key2 value2`:同时设置多个键值对。 - `MGET key1 key2`:获取多个键的值。 #### 哈希(Hash) 哈希适用于存储对象,可以将对象的字段和值存储为键值对。 - `HSET key field value`:设置哈希表中某个字段的值。 - `HGET key field`:获取哈希表中某个字段的值。 - `HGETALL key`:获取哈希表中所有字段和值。 - `HDEL key field`:删除哈希表中的某个字段。 - `HEXISTS key field`:判断哈希表中是否存在某个字段。 #### 列表(List) 列表是基于链表实现的有序集合,支持在头部或尾部添加或删除元素。 - `LPUSH key value`:将值插入到列表头部。 - `RPUSH key value`:将值插入到列表尾部。 - `LRANGE key start stop`:获取列表中指定范围的元素。 - `LPOP key`:移除并返回列表头部元素。 - `RPOP key`:移除并返回列表尾部元素。 #### 集合(Set) 集合是无序的、不重复的元素集合,支持集合运算如交集、并集、差集等。 - `SADD key member`:向集合中添加一个或多个成员。 - `SMEMBERS key`:获取集合中的所有成员。 - `SREM key member`:从集合中删除一个或多个成员。 - `SISMEMBER key member`:判断成员是否存在于集合中。 - `SUNION key1 key2`:获取两个集合的并集。 #### 有序集合(Sorted Set) 有序集合与集合类似,但每个成员都关联一个分数(score),用于排序。 - `ZADD key score member`:向有序集合中添加成员或更新其分数。 - `ZRANGE key start stop [WITHSCORES]`:按分数从小到大返回指定范围的成员。 - `ZREVRANGE key start stop [WITHSCORES]`:按分数从大到小返回指定范围的成员。 - `ZREM key member`:从有序集合中删除一个或多个成员。 - `ZCOUNT key min max`:统计指定分数区间内的成员数量。 #### 事务操作 Redis 支持事务操作,通过 `MULTI` 和 `EXEC` 命令实现。 - `MULTI`:标记事务的开始。 - `EXEC`:执行事务中的所有命令。 #### 示例代码 ```bash # 启动Redis客户端 redis-cli # 字符串操作 SET name "John" GET name INCR counter # 哈希操作 HSET user:1 name "Alice" HSET user:1 age 30 HGETALL user:1 # 列表操作 LPUSH tasks "task1" LPUSH tasks "task2" LRANGE tasks 0 -1 # 集合操作 SADD fruits "apple" SADD fruits "banana" SMEMBERS fruits # 有序集合操作 ZADD scores 90 "Alice" ZADD scores 85 "Bob" ZRANGE scores 0 -1 WITHSCORES # 事务示例 MULTI SET key1 "value1" GET key1 EXEC ``` 上述命令可以满足大多数缓存操作需求,具体使用时应根据业务场景选择合适的数据类型和命令[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值