Redis----String命令
- 前言.
- 常见的String存储类型.
- 常见命令
- 1. set 命令
- 2. get 命令
- 3. mget命令与mset命令
- 4. setnx命令
- 5. setex与psetex命令
- 6. incr与incrby与incrbyfloat命令
- 7. decr与decrby命令
- 8. append命令
- 9. getrange和setrange命令
- 10. strlen命令.
前言.
常见的String存储类型.
-
基本格式的字符串
-
JSON格式的字符串.
-
数字(浮点数/整数)
-
二进制数据.
如图片、视频、音频等文件的二进制表示。由于Redis的String是二进制安全的,因此可以直接用来存储这些非文本数据。但需要注意的是,虽然技术上可行,但在实践中通常不会将大量或大尺寸的二进制文件直接存储在Redis中,因为这会占用大量的内存资源,影响Redis的性能。
常见命令
1. set 命令
- 功能:
- 在Redis中,SET命令用于设置(或更新)存储在Redis数据库中的键的值。这个命令是最基本的Redis命令之一,用于存储字符串类型的值。当你执行SET命令时,你需要指定一个键(key)和一个值(value),Redis会将这个值存储在指定的键下。
- 基本格式:
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]
key: 要设置的键。
value: 要设置的值。
expiration: 可选参数,用于设置键的过期时间。
EX seconds: 设置键的过期时间为指定的秒数。
PX milliseconds: 设置键的过期时间为指定的毫秒数。
NX: 可选参数,仅当键不存在时才设置键值对。
XX: 可选参数,仅当键已存在时才设置键值对。
- 演示命令的使用:
2. get 命令
- 功能:
- 获取 key 对应的 value。如果 key 不存在,返回 nil。如果 value 的数据类型不是 string,会报错。
- 基本格式:
GET key
- 演示命令的使用:
3. mget命令与mset命令
- 功能:
- MSET和MGET分别用于批量设置和获取多个键值对
- 返回值:
- MSET返回ok
- MGET返回对应的value值,不存在则是nil
- 基本格式:
MGET key [key …]
MGET key [key …]
- 演示命令的使用:
4. setnx命令
- 功能:
- SETNX是Redis中的一个命令,全称为“Set if Not Exists”,即“如果不存在则设置”。该命令用于设置一个键值对,但仅当该键在Redis数据库中尚不存在时才会执行设置操作。
- 返回值:
- 如果键不存在,设置成功,返回1。
- 如果键已存在,设置失败,不做任何操作,返回0
- 基本格式:
SETNX key value
- 演示命令的使用:
5. setex与psetex命令
- 功能:
- SETEX命令用于设置键的值及其过期时间(以秒为单位)。如果键已经存在,SETEX命令会替换旧的值及其过期时间。
- PSETEX命令与SETEX类似,也是用于设置键的值及其过期时间,但过期时间的单位是以毫秒为单位。
- 返回值:
- 操作成功时都返回“OK”。
- 基本格式:
SETEX key seconds value 设置到期时间为秒
PSETEX key milliseconds value 设置到期时间为毫秒
- 演示命令的使用:
6. incr与incrby与incrbyfloat命令
- 功能:
- INCR命令用于将指定键(key)的值递增1,并返回自增后的值。如果键不存在,INCR命令会先创建一个新的键,并将其初始值设置为0,然后再执行递增操作。INCR命令适用于存储为整数的值。相当于+1操作.
- INCRBY命令与INCR类似,但它允许用户指定递增的数值,而不是默认的1。INCRBY命令将键中储存的数字加上指定的增量值,此值也可以为负数。相当于+n操作
- INCRBYFLOAT命令用于递增代表存储在键中的浮点数的字符串。如果键不存在,它会先被设置为0,然后再执行递增操作。与INCR和INCRBY命令不同,INCRBYFLOAT允许对浮点数进行操作。相当于对浮点数进行加减操作.
- 基本格式:
INCR key
INCRBY key increment
INCRBYFLOAT key increment
- 演示命令的使用:
7. decr与decrby命令
-
功能:
- DECR命令将键中储存的数字值减一。如果键不存在,那么键的值会先被初始化为0,然后再执行DECR操作。
- DECRBY命令将键所储存的值减去指定的减量值。如果键不存在,那么键的值会先被初始化为0,然后再执行DECRBY操作。
-
返回值:
- 执行命令之后键的值。
- 减去指定减量值之后,键的值。
-
基本格式:
DECR key
DECRBY key decrement
- 演示命令的使用:
8. append命令
- 功能:
- APPEND命令的主要功能是在Redis中追加字符串到指定键的末尾。这意味着,如果键已经存在并且存储了一个字符串值,APPEND命令将新值追加到该值的末尾。
- 如果键不存在,APPEND命令将创建该键,并将新值设置为键的初始值,类似于使用SET命令但没有指定过期时间。
- 返回值:
- APPEND命令返回追加操作后字符串的总长度。这包括原始字符串的长度(如果键已存在)和新追加的字符串长度。
- 基本格式:
APPEND key value
- 演示命令的使用:
9. getrange和setrange命令
-
功能:
- GETRANGE命令用于获取存储在指定key中字符串的子字符串。子字符串的截取范围由start和end两个偏移量决定(包括start和end在内)。如果key不存在,命令将返回一个空字符串。
- SETRANGE命令用指定的字符串覆盖给定key所储存的字符串值,覆盖的位置从偏移量offset开始。如果key不存在,命令会先创建一个空字符串,然后再进行覆盖操作。
-
返回值:
- GETRANGE返回截取得到的子字符串。
- SETRANGE返回被修改后的字符串长度。
-
基本格式:
GETRANGE key start end
SETRANGE key offset value
- 演示命令的使用:
10. strlen命令.
-
功能:
- strlen命令返回存储在指定key中的字符串值的字节长度。这个长度是指字符串的实际字节数,对于多字节字符(如UTF-8编码的字符),其长度可能大于字符的数量。
- 如果指定的key不存在,strlen命令将返回0。
- 如果key存储的不是字符串类型的值,如列表、集合、哈希等,strlen命令将返回一个错误。
-
返回值:
- 整数回复:表示字符串的字节长度。如果key不存在,则返回0;如果key存储的不是字符串类型的值,则返回错误。
-
基本格式:
STRLEN key
- 演示命令的使用: