数据库 ·

redis命令之操作字符串

Redis的字符串就是一个由字节组成的序列,他们和很多编程语言里的字符没有什么明显区别,更多的适合js中的字符串类似,字符串可以存储以下三张从类型的值:
- 字符串,字符类型
- 整数
- 浮点数

用户可以通过给定一个任意的数值,对存储着整数或者浮点数的字符串执行自增或自减操作,在有需要的时候,Redis还会将整数转换成浮点数。整数的取值范围和系统的长整数取值范围相同,而浮点数的取值范围和精度则和IEEE 754标准的双精度浮点数(double)相同。
接下来看一下redis操作字符串类型的命令

命令 描述
SET key value 设置指定 key 的值
GET key 获取指定 key 的值
GETRANGE key start end 获取一个有偏移量start至偏移量end范围内的所有字符组成的子串,包括start和end在内
GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
GETBIT key offset 对 key 所储存的字符串看做是二进制串,并返回串中偏移量为offset的二进制位的值。
MGET key1 [key2..] 获取所有(一个或多个)给定 key 的值。
SETBIT key offset value 对 key 所储存的字符串看做是二进制串,并将串中偏移量为offset的二进制位的值设置为value
SETEX key seconds value 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
SETNX key value 只有在 key 不存在时设置 key 的值
SETRANGE key offset value 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始
STRLEN key 返回 key 所储存的字符串值的长度。
PSETEX key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位
INCR key 将 key 中储存的数字值增一
INCRBY key increment 将 key 所储存的值加上给定的增量值(increment)
INCRBYFLOAT key increment 将 key 所储存的值加上给定的浮点增量值(increment)
DECR key 将 key 中储存的数字值减一
DECRBY key decrement key 所储存的值减去给定的减量值(decrement)
APPEND key value 如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾

很多键值数据库只能讲数据存储为普通的字符串,并签字不提供任何字符串处理操作,有一些键值数据库允许用户将字节追加到字符串的前面或者后面,但是却没办法想redis一样对字符串的子串进行读写。从很多方面来讲,即使Redis只支持字符串结构,并且仅支持上表所列出的命令,Redis也比很多的数据库要强大的多,通过子串操作和二进制位操作,配合WATCH命令、MULTI命令和EXEC命令,用户甚至可以手动去构建任何他们想要的数据结构。

只要花一些心思,我们甚至可以将字符串当做列表来使用,但是这种做法能够执行的列表操作并不多,更好的办法是直接使用LIST列表结构,Redis为这种结构提供了丰富的列表操作命令。

参与评论