Redis 数据库支持多种数据类型,主要有:String
、List
、Set
、Sorted Set
、Hash
等,每种数据类型都有其各自的特点。
一、string 类型
String 类型是一种二进制安全的数据类型,可以把图片和视频保存未 String 类型的 Value ,String 数据类型的底层实现类似于:
struct sdshdr {
long len;
long free;
char bug[];
}
数组用于存放 string 的实际内容,len
字段用于记录 buf 的长度,free
字段用于记录 buf 数组剩余的可用空间。
由于 string 数据底层有单独用于记录数据长度和空间的字段(len 和 free 字段),所欲不必使用一般的 nil 字符作为结束,从而实现了二进制安全。通常情况,string 数据类型用于缓存一些网站的静态文件,如图片、CSS文件等。
二、相关 redis-cli 命令
set key value
:设置 key 对应的值为 value,成功返回1,否则返回0;
setnx key value
:如果 key 对应的值已经存在则返回0,否则设置值为 value;
get key
:获取 key 对应的值,否则返回 nil;
getset key value
:先获取 key 对应的值,然后设置值为 value,如果值不存在,则返回 nil;
mget key1 key2......keyN
:一次获取多个 key 对应的值,如果有不存在的 key,则对应返回 nil;
mset key1 value1......keyN valueN
:一次性设置多个 key 对应的值,全部成功返回1,设置失败返回0;
msetnx key1 value1......keyN valueN
:一次性设置多个 key 对应的值,但是不覆盖已经存在的 key;
incr key
:对应的 key 值增加1,成功后返回新的值,如果对应的值不是整型,返回错误。如果 key 不存在,则设置一个新的 key 对应的值为1;
decr key
:对应的 key 值减1,如果 key 对应的值不存在,则设置一个新的 key 对应值为-1;
incrby key int
:对应的 key 值增加 int,返回新的值;
decrby key int
:对应的 key 值减少 int,返回新的值;