IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis(三)——Redis数据类型 -> 正文阅读

[大数据]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】的特性以及基础命令,不需要死记硬背,但是要多用。其余还是有一些相关的命令没有说明,只是使用的相对较少,用到的时候再去查就可以。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:27:35  更:2022-03-16 22:27:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:46:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码