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为这种结构提供了丰富的列表操作命令。