学习Redis,day4 Redis的String操作~

131 阅读3分钟

「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战

Redis的String操作

String(字符串)

1、向字符串后追加字符APPEND key "value"

示例:向key后追加“,xuyang”的字符串

APPEND key1 ",xuyang"   

注意事项:如果该键存在则向后追加字符串,若不存在则新建。

2、获取字符串的长度STRLEN key

示例:获取string类型的key为key1的字符串长度

 STRLEN key1     

3、设置字符串数值自增incr key

示例:设置string类型的key为key2的键对应的数值自增

 incr key2

4、设置字符串自减decr key

示例:设置string类型的key为key2的键对应的数值自减

 decr key2      

5、设置字符串自增的步长INCRBY key num

示例:设置string类型的key为key3的键对应的数值以步长为10自增

 INCRBY key3 10 

6、设置字符串自减的步长DECRBY key num

示例:设置string类型的key为key3的键对应的数值以步长为5自增

 DECRBY key3 5

7、截取指定字符串长度GETRANGE key start end

示例:截取string类型的key为key1的字符串的0到3长度的字符并显示

GETRANGE key1 0 3   

8、替换字符串字符(从指定位置开始的相同长度的字符)SETRANGE key start value

示例:替换string类型的key为key2的值,从第一个开始替换为abc

 SETRANGE key2 1 abc  

9、批量创建键值对mset key1 value1 key2 value2 ... ...

示例:批量设置键为key1值为a1、键为key2值为a2、键为key3值为a3的键值对

 mset key1 a1 key2 a2 key3 a3

10、批量获取键值对的值mget key1 key2 key3 ...

示例:批量获取键为key1、key2值的键值对的值

 mget key1 key2

11、设置多个值msetnx key1 value1 key2 value2 ... ...

示例:批量设置键为key1值为v1、键为key2值为v2的键值对

 msetnx key1 v1 key2 v2

注意事项:msetnx是一个原子性的操作,要么都成功,要么都失败,如果键不存在则创建成功,若存在则创建失败。

命令操作示例:

127.0.0.1:6379> set key1 v1		#设置键值对
OK
127.0.0.1:6379> get key1		#获取键值对
"v1"
127.0.0.1:6379> EXISTS key1		#判断键值对是否存在
(integer) 1
127.0.0.1:6379> APPEND key1 "hello"	#向字符串后追加字符
(integer) 7
127.0.0.1:6379> STRLEN key1		#获取字符串长度
(integer) 7 
127.0.0.1:6379> set views 0		#设置一个初始浏览量
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views		#设置浏览量自增(自增量为1)
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get  views
"2"
127.0.0.1:6379> decr views		#设置浏览量自减(自减量为1)
(integer) 2
127.0.0.1:6379> decr views
(integer) 1
127.0.0.1:6379> get views
"1"
127.0.0.1:6379> INCRBY views 10	#设置浏览量规定步长的自增(步长为10)
(integer) 10
127.0.0.1:6379> INCRBY views 10
(integer) 20
127.0.0.1:6379> DECRBY views 5	#设置浏览量规定步长的自减(步长为5)
(integer) 15
127.0.0.1:6379> DECRBY views 5
(integer) 10
127.0.0.1:6379> GETRANGE key1 0 3		#截取key1字符串的0到3长度的字符
"hell"
127.0.0.1:6379> GETRANGE key1 0 -1		#截取key1字符串的0到-1长度的字符(所有字符)
"hello,xuyang"
127.0.0.1:6379> set key2 "abcdefg"		#设置字符串abcdefg
OK
127.0.0.1:6379> SETRANGE key2 1 xx		#替换key2键中从1开始的字符
(integer) 7
127.0.0.1:6379> get key2				#获取key2
"axxdefg"
127.0.0.1:6379> setex key3 20 "hello"	#创建key3的值为hello有效时间为20秒
OK
127.0.0.1:6379> ttl key3				#查看key3的有效时间
(integer) 14
127.0.0.1:6379> setnx mykey "redis"		#创建mykey的值为redis,如果不存在则创建成功,若存在则创建失败
(integer) 1
127.0.0.1:6379> keys *					#查看所有的key值
1) "key1"
2) "mykey"
3) "key2"
127.0.0.1:6379> ttl key3				#查看key3的有效时间
(integer) -2							# -2 表示失效
127.0.0.1:6379> setnx mykey "mongDB"	#创建mykey值为mongDB,若存在则创建失败,返回0
(integer) 0
127.0.0.1:6379> get mykey
"redis"
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"

明天继续加油!