Redis(三)——Redis数据类型
前言
本篇笔记中会先补充一些基础命令,然后再说明Redis的数据类型。 本篇笔记可以当做常用命令手册来使用,想要更加深入的同学不建议学习本篇笔记
基础命令补充
此命令可以获取新增/修改多个[key/value]。
mset [key1] [value1] [key2] [value2]
此命令可以一次获得多个 value
mget [key1] [key2]
此命令可以直接更改根据 [key] 获取到的 [value].
# 返回值为修改前的值
getset [key] [newValue]
此命令可以获取对应 [key] 的 [value]的长度
strlen [key]
对当前[key]对应的[value]追加内容
# 返回值为 value + appendValue
append [key] [appendValue]
此命令可以截取一部分value;start和end都是下标,但是它的截取方式是将start和end所代表的元素都截取出来
getrange [key] start end
此命令可以直接在设置新的[value]的时候,规定其声明周期。
setex [key] [value] [seconds]
此命令可以使用毫秒设置声明周期
psetex [key] [value] [milliseconds]
此命令可以辨别当前 [key] 是否存在,如果存在则不作任何操作。
setnx [key] [value]
与setnx类似,可以同时设置多个[key/value],需要注意的是:如果在设置多个[key/value]时,只要有一个[key]是已经存在的,则所有本次的设置全都失效。
msetnx [key1] [value1] [key2] [value2]
此命令对数值类型的数据进行减法
表示对年龄执行 -1 操作
decrby age 1
表示对数值类型进行加法操作
incrby age 1
对数值进行小数加法
# 注意:结果最终保留 17 位小数
incrbyfloat age 2.64563454645675686787896756736
数据类型
String类型
在Redis的前两篇笔记中,使用命令设置的数据的值都是对应的String类型,该类型可以直接理解为字符串(毕竟真的没什么区别)。
在这两篇笔记中记录的指令,有很多是字符串的常规操作命令。比如:字符串截取、拼接等。这些命令不需要背,用的多了就记住了。但是命令中需要注意的细节在笔记中都有记录,这些一定要进行记忆。
List数据类型
该类型是一个在各个语言中都很常见的类型,它的一些定义与规则也与Java语言有相似之处。比如:有序、元素可以重复,每个元素通过下标来记录对应的位置。但是在Redis的List中有一个特性是:可以从List两端插入数据。
基础命令
lpush [key] [value1] [value2] [value3]
rpush [key] [value1] [value2] [value3]
- lpushx:从头部插入数据,但是必须保证将要插入的List存在,否则不会执行创建List的操作
lpushx [key] [value1] [value2] [value3]
-
rpushx:同上。 -
lpop:将第一个数据返回显示并将其删除
lpop [key]
当List中的元素都被删除后,集合也会被删除。
llen listArray
lset [key] [index] [newValue]
lindex [key] [index]
lrem [key] [删除的数量] [去重的值]
ltrim [key] [index_start] [index_end]
linsert [key] [before/after] [list中的key] [想要存放的key]
Set数据类型
set类型的数据其实可以理解为数据结构的set类型,主要特点:元素不能重复、无序、无下标。
基础命令
sadd [key] [memeber1] [member2] [member3]
smembers [key]
scard [key]
spop [key]
- smove:将一个set集合中的元素放入另一个set
smove [源set] [目标set] [member]
srem [key] [member]
- sismembers:判断set中是否包含某个元素,返回值为布尔值
sismember [key] [member]
srandmember [key] [count]
- sdiff:将第一个set中与其他set的元素重复的元素删掉(注意:删除第一个set集合中的元素)
sdiff [key1] [key2] [key3]
sinter [key1] [key2]
sunion [key1] [key2]
zset
基础命令
zadd [key] [score1] [member1] [score2] [member2] [score3] [member3]
zrange [key] [index_start] [index_end]
zcard [key]
- zrangebyscore:根据权重指定的区间返回元素
# 普通显示
zrangebyscore [key] [score_start] [score_end]
# 分页显示
zrangebyscore [key] [score_start] [score_end] limit [offset] [count]
zrank [key] [member]
zrevrand [key] [member]
zscore [key] [score]
zrem [key] [member]
zincrby [key] [score] [member]
hash数据类型
hash数据类型与数据结构中的Map结构一致,除了固有的集合标识以外,内部还存在着【键值对】,其对应的属性为[field] [value]。
基础命令
hset [key] [field1] [value1] [field2] [value2] [field3] [value3]
hget [key] [field]
hgetall [key]
hdel [key] [field]
- hexists:判断当前hash中是否存在某个 field
hexists [key] [field]
hkeys [key]
hvals [key]
- hsetnx:设置一个【键值对】——前提是该 field 不存在
hsetnx [key] [field] [value]
hincrby [key] [field] [increment]
- incrbyfloat:对指定的value执行浮点数加法操作
hincrbyfloat [key] [field] [increment]
总结
以上是Redis的物种数据类型——【String,List,Set,ZSet,Hash】的特性以及基础命令,不需要死记硬背,但是要多用。其余还是有一些相关的命令没有说明,只是使用的相对较少,用到的时候再去查就可以。
|