1. String数据类型简介
String是Redis常用的数据类型之一,是Redis最基础,也是最简单的数据类型。这种类型的值最大可达512MB。
1.1 基础命令
主要包括以下几种命令:
SET:设置指定key的值为String类型。如果key存在,则覆盖原来的值。
GET:获取指定key的值。
DEL:删除指定key的值。
SET key value
GET key
DEL key
2. String数据类型常用操作命令
2.1 INCR/DECR操作
使用INCR可以将key对应的value的值增加1。如果key不存在,则会新建一个值为0的key并进行INCR操作。DECR与INCR操作相反。
SET count 10
INCR count
# 返回结果为11
DECR count
# 返回结果为10
注意:若原始数值不为整数,则不能进行这两种操作,否则会报错。
2.2 APPEND操作
将指定字符串追加到原来key对应的字符串上(如果key不存在,则新建一个值为该字符串的key)。
SET mykey "Hello"
APPEND mykey " World!"
# 返回结果为"Hello World!"
注意:如果key本身的值类型不是String,那么该操作会返回错误。
2.3 STRLEN操作
获取指定key对应的字符串长度。
SET greeting "Hello World!"
STRLEN greeting
# 返回结果为12
2.4 GETRANGE操作
获取指定key对应的字符串的子字符串。若start大于end,则返回空字符串。
SET greeting "Hello, World!"
GETRANGE greeting 0 4
# 返回结果为"Hello"
2.5 SETRANGE操作
将指定字符串替换成给定值,并返回替换后的字符串长度。若start大于原始字符串长度,则会在原始字符串后面填充'\0'。
SET mykey "Hello World!"
SETRANGE mykey 6 "Redis"
# 返回结果为长度13(替换后的字符串长度为13)
GET mykey
# 返回结果为"Hello Redis"
注意:该操作的index参数是起始位置,而不是长度。
2.6 SETEX/GETSET操作
SETEX命令可以设置指定key的值,并设定一定可以。
SETEX mykey 10 "Hello"
# 设置mykey的值为"Hello",并设定10秒后过期。
GETSET命令可以将给定值设置为指定key的value,并返回旧的值。
SET mykey "Hello"
GETSET mykey "Redis"
# 返回结果为"Hello",同时mykey的值被设置为"Redis"
2.7 MSET/MGET操作
MSET命令可以同时设置多个key-value对。
MSET key1 "Hello" key2 "World"
# 同时设置key1为"Hello",key2为"World"
MGET命令可以取出多个key对应的value。
SET key1 "Hello"
SET key2 "World"
MGET key1 key2
# 返回结果为["Hello", "World"]
2.8 SETNX操作
向指定key新增一个值,如果该key已经存在,则不做任何操作。
SETNX key value
# 如果key不存在,则新增一个"key: value"值
2.9 MSETNX操作
向Redis中新增多个key-value对,如果其中有一个key已经存在,则整个操作都不会成功。
MSETNX key1 "Hello" key2 "World"
# 如果key1和key2都不存在,则新增key1:"Hello",key2:"World"
2.10 STRCMP操作
比较两个指定key对应的字符串是否相等。若相等,则返回0,否则返回1。
SET key1 "Hello"
SET key2 "Hello"
STRCMP key1 key2
# 返回结果为0
2.11 GETBIT/SETBIT操作
GETBIT命令用于获取给定偏移量上的比特位。SETBIT命令用于设置给定偏移量上的比特位的值。如果指定的偏移量超过了字符串value的长度,则会进行自动填充0的操作。
SET mykey "Hello"
GETBIT mykey 1
# 返回结果为1("H"的二进制值为01001000,第二位为1)
SETBIT mykey 1 0
# 将第二位改为0
2.12 BITCOUNT/BITOP操作
BITCOUNT命令用于计算字符串中二进制值为1的个数。
SET mykey "Hello"
BITCOUNT mykey
# 返回结果为10("H"的二进制值为01001000,"e"的二进制值为01100101...)
BITOP命令用于对一个或多个key进行按位运算,并将结果存储在新的key中。
SET key1 "Hello"
SET key2 "World"
BITOP AND mydest key1 key2
# 对key1和key2的每一位进行AND运算,并将结果存储在mydest中
3. 总结
String类型是Redis中最基础、最常用的数据类型之一。它支持的功能也非常丰富,如:字符串拼接、自增等功能,也支持高级的操作指令。
文章中列举了String类型的常用功能操作。作为开发者,不仅需要了解这些命令的使用,更需要了解这些命令的底层实现,以更好地了解Redis的内部工作原理。通过对Redis的深入理解,可以有利于我们更好地实现项目中的各种需求。