当前位置: 首页 > news >正文

Redis常见数据结构

目录

基本介绍

特点:

全局命令

数据类型:

String

Hash

List

Set

Zset

基本介绍

Redis是一个在内存中存储数据的中间件,可作为数据库,缓存,消息队列等。

特点:

持久化:Redis会把数据存储在内存中,内存的数据是易失的,进程退出和重启都会使内存中的数据丢失,Redis会把数据存储在硬盘上进行备份,重启后Redis会重新加载硬盘中的备份数据,使Redis的内存恢复到重启前的状态。

支持集群:引入多个主机部署多个Redis节点,每个节点可以存储数据的一部分。

高可用:Redis自身支持主从结构,从节点相当于主节点的备份。

快速:Redis数据在内存中,读写的速度远远快于MySQL(数据存储在硬盘中)。Redis的核心功能都是比较简单的逻辑,不支持一些复杂的查询。Redis使用epoll的I/O多路复用的方式(使用一个线程管理多个Socket)。Redis是单线程模型,减少了不必要线程之间的竞争开销。

基本类型:Redis基于键值对存储数据,类似于哈希表,使用<key,value>的形式存储数据,key的类型固定为字符串类型,value可以支持多种类型:String(字符串),hash(哈希),set(集合),zset(有序集合),list(链表)。

全局命令

redis -cli                 本机登录

keys [patter]           查询匹配的key

type key                 查看对应的value类型

ttl key                     查看过期剩余时间

exists key               查看key是否存在

del ke                     删除key

scan cursor(光标 指向当前遍历位置) count(每次获取元素个数)  渐进遍历

数据类型:

String

set key value                 设置value

get key                          获取value

set key value ex            设置key和value,加上过期时间

set key value nx|xx         nx:key不存在时设置值  xx:存在时设置

mset key vslue                 一次设置多个key

mget                                一次获取多个key对应的value

incr key                            对应key的value+1

incrby key                        对应key的value+n

decr key                           对应key的value -1

decrby key                       对应key的value -n

incrbyfloat key                 针对小数的加减

append key value             拼接字符串

getrange key start end      获取指定范围字符串

setrange key offset value   从指定位置开始替换字符

strlen    获取字符串长度

Hash

hset key field value [field vlaue ...]        设置key中的 fleld value

hget key field                                         获取key对应的field

hexists key field                                     判断hash中key对应的field是否存在 

hdel key field [field]                                删除hash对应的key中field字段

hkeys key                                               获取key中的所有faild字段

hvals key                                                获取hash中的所有value

hgetall key                                              获取hash中的所有字段和value

hmget key field [field..]                            一次查询多个field

hset nx key field key                               设置值,不存在设置成功

hincrby key field n                                   对应faild的value加减n

hincrbyfloat key field n                            加减小数

hstrlen key field                                       计算value的字符串长度

hlen key                                                   获取哈希元素个数

List

lpush key element [element...]        左侧插入元素

lpushx key element [element]         存在元素则插入元素,不存在直接返回

rpush key element [element]           右侧插入元素 

rpushx key element [element]         存在元素则插入元素,不存在直接返回

lrange key start stop                        指定范围查看list

lpop key                                           左侧取出元素

rpop key                                           右侧取出元素

lindex key index                                获取从左开始index元素位置

linsert key before | after pivot element        指定位置前后插入元素

llen key                                                        获取元素个数

lrem key count element                                删除指定个数的元素

ltrim key start stop                                        删除指定范围外元素

lset key index element                                 根据下标修改元素

blpop和brpop                                                带有阻塞的插入元素

blpop key[key...] timeout                               带有超时时间

lpush 和 rpop 结合类似数据结构中的栈

lpush 和 lpush 结合类似数据结构中的队列 

Set

sadd key member [member...]  添加元素

smembers key                        获取集合中所有元素

sismember key member          判断元素是否存在集合中

spop key [count]                        随机删除元素

srandmember [count]                随机取出元素               

smove source destination member        将member删除,插入到目标集合中

srem key member [member...]                删除元素一个或多个

sinter key [key...]                                       求集合交集

sinterstore destination key [key...]              计算交集,结果放入集合中

sunion key [key]                                        计算并集

sunionstore destination key[key...]             计算并集,结果放入集合中

sdiff key [key...]                                            计算差集

sdiffstore destination key [key...]                计算差集,结果放入集合中

Zset

zadd key [NX | XX] [GT | LT] [INCR] score member[member...]  添加元素

zrange start stop with scores               使用下标指定查询集合,带有分数

zcard key                                               获取元素个数

zcount key min max                                返回分数在区间min和max之间

zrevrange key min max with scores         按照分数逆序打印

zrevrangebyscore key min max with scores          按照分数逆序打印,带有分数

zpopmax key count                                        删除并返回分数最高的count个元素

bzpopmax key [key...] timeout                        带有超时时间的阻塞删除

zpopmin key count                                        删除有序集合中最小count个元素

bzpopmin key [key...] timeout                        带有超时时间的阻塞删除

zrank key member                                         返回指定元素的排名

zrevrank key member                                     降序返回元素排名

zscore key member                                        更具member查找元素

zrem key member [member]                        删除指定有序集合元素

zremrangebyrank key start stip                     规定下标范围删除

zremrangebyscore key min max                    根据分数区间进行删除

zincrby key increment member                       对分数进行增加,保持集合升序

zinterstore destination numkeys key[key...] [weights weight[weight...]] 

[aggregate <sum | min | max>]        交集

zunionstore destination numkeys key[key...] [weights weight[weight...]]

[aggregate <sum | min | max>]        并集

相关文章:

Redis常见数据结构

目录 基本介绍 特点&#xff1a; 全局命令 数据类型&#xff1a; String Hash List Set Zset 基本介绍 Redis是一个在内存中存储数据的中间件,可作为数据库&#xff0c;缓存&#xff0c;消息队列等。 特点&#xff1a; 持久化&#xff1a;Redis会把数据存储在内存中…...

fps动作系统9:动画音频

文章目录 音频单播放音频文件也是可以的&#xff0c;只不过是2d声音。创建音频蓝图cue(音效)音量乘数 衰减(空间效果)音量自然声音内部半径衰减距离 空间化双声道 绑定到动画动画序列轨道 音频 单播放音频文件也是可以的&#xff0c;只不过是2d声音。 创建音频蓝图 cue(音效…...

十四、GitLab 流水线自动化部署之 Windows Server

一、软件下载 本文章采用 Windows 版本的 Gitlab Runner 客户端&#xff0c;下载地址参考如下&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1nktWQGR4toRpgzEn9Qj3kQ?pwd0p1d 提取码&#xff1a;0p1d --来自百度网盘超级会员V7的分享 二、环境安装 1、Java 环境…...

数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例

MongoDB数据库存储模式为文档数据存储库&#xff0c;存储方式是将文档存储在集合之中。 MongoDB数据库是开源数据库&#xff0c;同时提供具有附加功能的商业版本。 MongoDB中的数据是以键值对(key-value pairs)的形式显示的。在模式设计上&#xff0c;数据库受到的约束更少。这…...

mysql8.0使用MGR实现高可用与利用MySQL Router构建读写分离MGR集群

MGR是MySQL Group Replication的缩写&#xff0c;即MySQL组复制。 在以往&#xff0c;我们一般是利用MySQL的主从复制或半同步复制来提供高可用解决方案&#xff0c;但这存在以下几个比较严重的问题&#xff1a; 主从复制间容易发生复制延迟&#xff0c;尤其是在5.6以前的版本…...

基于Ubuntu2404搭建k8s-1.31集群

k8s 1.31 环境初始化安装Container安装runc安装CNI插件部署k8s集群安装crictl使用kubeadm部署集群节点加入集群部署Calico网络配置dashboard 本实验基于VMware创建的Ubuntu2404虚拟机搭建k8s 1.31版本集群&#xff0c;架构为一主一从&#xff0c;容器运行时使用Container&#…...

Golang的图形编程应用案例

Golang的图形编程应用案例 一、Golang的图形编程概述 是一种高效、可靠且易于使用的编程语言&#xff0c;具有并发性和简洁性&#xff0c;因此在图形编程领域也有着广泛的应用。Golang的图形编程主要通过各种图形库来实现&#xff0c;其中最知名的是Go图形库&#xff08;Ebiten…...

PostgreSQL 错误代码 23505 : ERROR: duplicate key value violates unique constraint

目录 1. 确认错误信息2. 检查数据3. 处理重复数据4. 检查唯一约束5. 添加唯一约束6. 使用事务处理并发操作7. 使用触发器8. 使用 ON CONFLICT 子句9. 重置序列10. 捕获异常并重试 错误代码 23505 是 PostgreSQL 中表示违反唯一约束&#xff08;unique violation&#xff09;的标…...

基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践

目录 前言 1、研究背景 2、研究意义 一、研究目标 1、“地理难抵点”的概念 二、“难抵点”空间检索实现 1、数据获取与处理 2、计算流程 3、难抵点计算 4、WebGIS可视化 三、成果展示 1、华东地区 2、华南地区 3、华中地区 4、华北地区 5、西北地区 6、西南地…...

MySQL InnoDB引擎 MVCC

MVCC&#xff08;Multi-Version Concurrency Control&#xff09;即多版本并发控制&#xff0c;是 MySQL 的 InnoDB 存储引擎实现并发控制的一种重要技术。它在很多情况下避免了加锁操作&#xff0c;从而提高了数据库的并发性能。 一、原理 MVCC 的核心思想是通过保存数据在某…...

服务器使用centos7.9操作系统前需要做的准备工作

文章目录 前言1.操作记录 总结 前言 记录一下centos7.9操作系统的服务器在部署业务服务之前需要做的准备工作。 大家可以复制到自己的编辑器里面&#xff0c;有需求的注释一些步骤。 备注&#xff1a;有条件的项目推荐使用有长期支持的操作系统版本。 1.操作记录 # 更换阿里云…...

【Prometheus】prometheus结合cAdvisor监控docker容器运行状态,并且实现实时告警通知

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...

【Stable Diffusion模型测试】测试ControlNet,没有线稿图?

相信很多小伙伴跟我一样&#xff0c;在测试Stable Diffusion的Lora模型时&#xff0c;ControlNet没有可输入的线稿图&#xff0c;大家的第一反应就是百度搜&#xff0c;但是能从互联网上搜到的高质量线稿图&#xff0c;要么收费&#xff0c;要么质量很差。 现在都什么年代了&a…...

算法刷题-数组系列-卡码网.区间和

题目描述 给定一个整数数组 Array&#xff0c;请计算该数组在每个指定区间内元素的总和。 示例&#xff1a; 输入&#xff1a; 5 1 2 3 4 5 0 1 1 3 输出: 3 9 要点 本题目以ACM的形式输入输出&#xff0c;与力扣的形式不一样&#xff0c;考察头文件的书写、数据结构的书写、…...

Druid GetConnectionTimeoutException解决方案之一

> Druid版本&#xff1a;v1.2.18 最近项目中经常出现&#xff1a;com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 120000, active 0, maxActive 128, creating 0, createErrorCount 2&#xff0c;但是其他平台连接这个数据源正常的 于是做了一个实验复…...

【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)

前言 前段时间发现了一个很喜欢的视频,可惜网站不让下载,简单看了一下视频是被切片成m4s格式的流文件,初步想法是将所有的流文件下载下来然后使用ffmpeg合并成一个完整的mp4,于是写了一段脚本来实现一下,电脑没有配python环境,所以使用JavaScript实现,合并功能需要安装ffmpeg,…...

CSDN2024年度总结|乾坤未定你我皆是黑马|2025一起为了梦想奋斗加油少年!!!

CSDN2024年我的创作纪念日1024天|不忘初心|努力上进|积极向前 一、前言&#xff1a;二、2024个人成长经历&#xff1a;HarmonyOS鸿蒙应用生态构建与扩展——杭州站AGI创新工坊&神经网络大模型——杭州站 三、2024年度创作总结&#xff1a;2024创作数据总结&#xff1a;博客…...

【前端】 react项目使用bootstrap、useRef和useState之间的区别和应用

一、场景描述 我想写一个轮播图的程序&#xff0c;只是把bootstrap里面的轮播图拉过来就用上感觉不是很合适&#xff0c;然后我就想自己写自动轮播&#xff0c;因此&#xff0c;这篇文章里面只是自动轮播的部分&#xff0c;没有按键跟自动轮播的衔接部分。 Ps: 本文用的是函数…...

联想电脑如何进入BIOS?

打开设置 下滑找到更新与安全 点击恢复和立即重新启动 选择疑难解答 选择UEFI固件设置 然后如果有重启点击重启 重启开机时一直点击FNF10进入BIOS界面...

蓝桥杯单片机大模板(西风)

#include <REGX52.H> #include "Key.h" #include "Seg.h" //变量声明区 unsigned char Key_Val,Key_Down,Key_Old;//按键扫描专用变量 unsigned char Key_Slow_Down;//按键减速专用变量 10ms unsigned int Seg_Slow_Down;//按键扫描专用变量 500ms …...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...