Redis五种数据结构如下:
对redis来说,所有的key(键)都是字符串。
String数据类型
一、概述
字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。
二、相关命令
1、赋值命令
命令原型:SET key value
时间复杂度:O(1)
命令描述:设定该Key持有指定的字符串Value,如果该Key已经存在,则覆盖其原有值。
返回值:总是返回"OK"。
2、取值命令
命令原型:GET key
时间复杂度:O(1)
命令描述:获取指定Key的Value。如果与该Key关联的Value不是string类型,Redis将返回错误信息,因为GET命令只能用于获取string Value。
返回值:与该Key相关的Value,如果该Key不存在,返回nil。
3、GETSET命令
命令原型:GETSET key value
时间复杂度:O(1)
命令描述:原子性的设置该Key为指定的Value,同时返回该Key的原有值。和GET命令一样,该命令也只能处理string Value,否则Redis将给出相关的错误信息。
返回值:返回该Key的原有值,如果该Key之前并不存在,则返回nil。
4、递增数字
命令原型:INCR key
时间复杂度:O(1)
命令描述:将指定Key的Value原子性的递增1。如果该Key不存在,其初始值为0,在incr之后其值为1。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。
返回值:递增后的Value值。
5、递减数字
命令原型:DECR key
时间复杂度:O(1)
命令描述:将指定Key的Value原子性的递减1。如果该Key不存在,其初始值为0,在decr之后其值为-1。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。
返回值:递增后的Value值。
6、增加指定的整数
命令原型:INCRBY key increment
时间复杂度:O(1)
命令描述:将指定Key的Value原子性的增加increment。如果该Key不存在,其初始值为0,在incrby之后其值为increment。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。
返回值:增加后的value值。
7、减少指定的整数
命令原型:DECRBY key decrement
时间复杂度:O(1)
命令描述:将指定Key的Value原子性的减少decrement。如果该Key不存在,其初始值为0,在decrby之后其值为-decrement。如果Value的值不能转换为整型值,如Hello,该操作将执行失败并返回相应的错误信息。注意:该操作的取值范围是64位有符号整型。
返回值:减少后的value值。
8、SETEX命令
命令原型:SETEX key seconds value
时间复杂度:O(1)
命令描述:原子性完成两个操作,一是设置该Key的值为指定字符串,同时设置该Key在Redis服务器中的存活时间(秒数)。该命令主要应用于Redis被当做Cache服务器使用时。
返回值:
9、SETNX命令
命令原型:SETNX key value
时间复杂度:O(1)
命令描述:如果指定的Key不存在,则设定该Key持有指定字符串Value,此时其效果等价于SET命令。相反,如果该Key已经存在,该命令将不做任何操作并返回。
返回值:1表示设置成功,否则0。
10、向尾部追加值
命令原型:APPEND key value
时间复杂度:O(1)
命令描述:如果该Key已经存在,APPEND命令将参数Value的数据追加到已存在Value的末尾。如果该Key不存在,APPEND命令将会创建一个新的Key/Value。
返回值:追加后Value的长度。
11、获取字符串长度
命令原型:STRLEN