Redis(三)——Redis数据类型

Redis(三)——Redis数据类型

前言

本篇笔记中会先补充一些基础命令,然后再说明Redis的数据类型。
本篇笔记可以当做常用命令手册来使用,想要更加深入的同学不建议学习本篇笔记

基础命令补充

  • mset

此命令可以获取新增/修改多个[key/value]。

mset [key1] [value1] [key2] [value2]
  • mget

此命令可以一次获得多个 value

mget [key1] [key2]
  • getset

此命令可以直接更改根据 [key] 获取到的 [value].

# 返回值为修改前的值
getset [key] [newValue]
  • strlen

此命令可以获取对应 [key] 的 [value]的长度

strlen [key]
  • append

对当前[key]对应的[value]追加内容

# 返回值为 value + appendValue
append [key] [appendValue]
  • getrange

此命令可以截取一部分value;start和end都是下标,但是它的截取方式是将start和end所代表的元素都截取出来

getrange [key] start end
  • setex

此命令可以直接在设置新的[value]的时候,规定其声明周期。

setex [key] [value] [seconds]
  • psetex

此命令可以使用毫秒设置声明周期

psetex [key] [value] [milliseconds]
  • setnx

此命令可以辨别当前 [key] 是否存在,如果存在则不作任何操作。

setnx [key] [value]
  • msetnx

与setnx类似,可以同时设置多个[key/value],需要注意的是:如果在设置多个[key/value]时,只要有一个[key]是已经存在的,则所有本次的设置全都失效。

msetnx [key1] [value1] [key2] [value2]
  • decrby

此命令对数值类型的数据进行减法

表示对年龄执行 -1 操作
decrby age 1
  • incrby

表示对数值类型进行加法操作

incrby age 1
  • incrbyfloat

对数值进行小数加法

# 注意:结果最终保留 17 位小数
incrbyfloat age 2.64563454645675686787896756736

数据类型

String类型

在Redis的前两篇笔记中,使用命令设置的数据的值都是对应的String类型,该类型可以直接理解为字符串(毕竟真的没什么区别)。

在这两篇笔记中记录的指令,有很多是字符串的常规操作命令。比如:字符串截取、拼接等。这些命令不需要背,用的多了就记住了。但是命令中需要注意的细节在笔记中都有记录,这些一定要进行记忆。

List数据类型

该类型是一个在各个语言中都很常见的类型,它的一些定义与规则也与Java语言有相似之处。比如:有序、元素可以重复,每个元素通过下标来记录对应的位置。但是在Redis的List中有一个特性是:可以从List两端插入数据。

基础命令
  • lpush:创建List,并从头部插入数据,
lpush [key] [value1] [value2] [value3]
  • rpush:创建List,并从尾部插入数据
rpush [key] [value1] [value2] [value3]
  • lpushx:从头部插入数据,但是必须保证将要插入的List存在,否则不会执行创建List的操作
lpushx [key] [value1] [value2] [value3]
  • rpushx:同上。

  • lpop:将第一个数据返回显示并将其删除

lpop [key]
  • rpop:同上(从尾部执行)

当List中的元素都被删除后,集合也会被删除。

  • llen:获取List中的元素数量
llen listArray
  • lset:修改指定List中对应下标的值
lset [key] [index] [newValue]
  • lindex:获取指定下标的元素
lindex [key] [index]
  • lrem:产出重复元素
lrem [key] [删除的数量] [去重的值]
  • ltrim:保留指定区间的值
ltrim [key] [index_start] [index_end]
  • linsert:向指定位置插入值
linsert [key] [before/after] [list中的key] [想要存放的key]

Set数据类型

set类型的数据其实可以理解为数据结构的set类型,主要特点:元素不能重复、无序、无下标。

基础命令
  • sadd:创建set数据集合
sadd [key] [memeber1] [member2] [member3]
  • smembers:查看set中的所有数据
smembers [key]
  • scard:返回set中的元素个数
scard [key]
  • spop:随机返回并删除一个元素
spop [key]
  • smove:将一个set集合中的元素放入另一个set
smove [源set] [目标set] [member]
  • srem:删除set中的指定元素
srem [key] [member]
  • sismembers:判断set中是否包含某个元素,返回值为布尔值
sismember [key] [member]
  • srandmember:随机返回指定数量的元素
srandmember [key] [count]
  • sdiff:将第一个set中与其他set的元素重复的元素删掉(注意:删除第一个set集合中的元素)
sdiff [key1] [key2] [key3]
  • sinter:交集
sinter [key1] [key2]
  • sunion:并集
sunion [key1] [key2]
zset
基础命令
  • zadd:创建zset集合
zadd [key] [score1] [member1] [score2] [member2] [score3] [member3]
  • zrange:获取指定区间的元素
zrange [key] [index_start] [index_end]
  • zcard:获取元素个数
zcard [key]
  • zrangebyscore:根据权重指定的区间返回元素
# 普通显示
zrangebyscore [key] [score_start] [score_end]
# 分页显示
zrangebyscore [key] [score_start] [score_end] limit [offset] [count]
  • zrank:返回排名
zrank [key] [member]
  • zrevrand:倒序排名
zrevrand [key] [member]
  • zscore:显示某一个元素的权重
zscore [key] [score]
  • zrem:删除某一个元素
zrem [key] [member]
  • zincrby:给某个特定元素加分
zincrby [key] [score] [member]

hash数据类型

hash数据类型与数据结构中的Map结构一致,除了固有的集合标识以外,内部还存在着【键值对】,其对应的属性为[field] [value]。

基础命令
  • hset:创建hash集合
hset [key] [field1] [value1] [field2] [value2] [field3] [value3]
  • hget:根据 field 获取对应的value
hget [key] [field]
  • hgetall:获取当前hash集合的全部元素
hgetall [key]
  • hdel:删除指定的【键值对】
hdel [key] [field]
  • hexists:判断当前hash中是否存在某个 field
hexists [key] [field]
  • hkeys:获取当前hash中的所有field
hkeys [key]
  • hvals:获取当前hash中的所有value
hvals [key]
  • hsetnx:设置一个【键值对】——前提是该 field 不存在
hsetnx [key] [field] [value]
  • hincrby:对指定的value 执行加法计算
hincrby [key] [field] [increment]
  • incrbyfloat:对指定的value执行浮点数加法操作
hincrbyfloat [key] [field] [increment]

总结

以上是Redis的物种数据类型——【String,List,Set,ZSet,Hash】的特性以及基础命令,不需要死记硬背,但是要多用。其余还是有一些相关的命令没有说明,只是使用的相对较少,用到的时候再去查就可以。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值