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常见数据结构
目录 基本介绍 特点: 全局命令 数据类型: String Hash List Set Zset 基本介绍 Redis是一个在内存中存储数据的中间件,可作为数据库,缓存,消息队列等。 特点: 持久化:Redis会把数据存储在内存中…...
fps动作系统9:动画音频
文章目录 音频单播放音频文件也是可以的,只不过是2d声音。创建音频蓝图cue(音效)音量乘数 衰减(空间效果)音量自然声音内部半径衰减距离 空间化双声道 绑定到动画动画序列轨道 音频 单播放音频文件也是可以的,只不过是2d声音。 创建音频蓝图 cue(音效…...
十四、GitLab 流水线自动化部署之 Windows Server
一、软件下载 本文章采用 Windows 版本的 Gitlab Runner 客户端,下载地址参考如下: 链接:https://pan.baidu.com/s/1nktWQGR4toRpgzEn9Qj3kQ?pwd0p1d 提取码:0p1d --来自百度网盘超级会员V7的分享 二、环境安装 1、Java 环境…...
数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例
MongoDB数据库存储模式为文档数据存储库,存储方式是将文档存储在集合之中。 MongoDB数据库是开源数据库,同时提供具有附加功能的商业版本。 MongoDB中的数据是以键值对(key-value pairs)的形式显示的。在模式设计上,数据库受到的约束更少。这…...
mysql8.0使用MGR实现高可用与利用MySQL Router构建读写分离MGR集群
MGR是MySQL Group Replication的缩写,即MySQL组复制。 在以往,我们一般是利用MySQL的主从复制或半同步复制来提供高可用解决方案,但这存在以下几个比较严重的问题: 主从复制间容易发生复制延迟,尤其是在5.6以前的版本…...
基于Ubuntu2404搭建k8s-1.31集群
k8s 1.31 环境初始化安装Container安装runc安装CNI插件部署k8s集群安装crictl使用kubeadm部署集群节点加入集群部署Calico网络配置dashboard 本实验基于VMware创建的Ubuntu2404虚拟机搭建k8s 1.31版本集群,架构为一主一从,容器运行时使用Container&#…...
Golang的图形编程应用案例
Golang的图形编程应用案例 一、Golang的图形编程概述 是一种高效、可靠且易于使用的编程语言,具有并发性和简洁性,因此在图形编程领域也有着广泛的应用。Golang的图形编程主要通过各种图形库来实现,其中最知名的是Go图形库(Ebiten…...
PostgreSQL 错误代码 23505 : ERROR: duplicate key value violates unique constraint
目录 1. 确认错误信息2. 检查数据3. 处理重复数据4. 检查唯一约束5. 添加唯一约束6. 使用事务处理并发操作7. 使用触发器8. 使用 ON CONFLICT 子句9. 重置序列10. 捕获异常并重试 错误代码 23505 是 PostgreSQL 中表示违反唯一约束(unique violation)的标…...
基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践
目录 前言 1、研究背景 2、研究意义 一、研究目标 1、“地理难抵点”的概念 二、“难抵点”空间检索实现 1、数据获取与处理 2、计算流程 3、难抵点计算 4、WebGIS可视化 三、成果展示 1、华东地区 2、华南地区 3、华中地区 4、华北地区 5、西北地区 6、西南地…...
MySQL InnoDB引擎 MVCC
MVCC(Multi-Version Concurrency Control)即多版本并发控制,是 MySQL 的 InnoDB 存储引擎实现并发控制的一种重要技术。它在很多情况下避免了加锁操作,从而提高了数据库的并发性能。 一、原理 MVCC 的核心思想是通过保存数据在某…...
服务器使用centos7.9操作系统前需要做的准备工作
文章目录 前言1.操作记录 总结 前言 记录一下centos7.9操作系统的服务器在部署业务服务之前需要做的准备工作。 大家可以复制到自己的编辑器里面,有需求的注释一些步骤。 备注:有条件的项目推荐使用有长期支持的操作系统版本。 1.操作记录 # 更换阿里云…...
【Prometheus】prometheus结合cAdvisor监控docker容器运行状态,并且实现实时告警通知
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
【Stable Diffusion模型测试】测试ControlNet,没有线稿图?
相信很多小伙伴跟我一样,在测试Stable Diffusion的Lora模型时,ControlNet没有可输入的线稿图,大家的第一反应就是百度搜,但是能从互联网上搜到的高质量线稿图,要么收费,要么质量很差。 现在都什么年代了&a…...
算法刷题-数组系列-卡码网.区间和
题目描述 给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。 示例: 输入: 5 1 2 3 4 5 0 1 1 3 输出: 3 9 要点 本题目以ACM的形式输入输出,与力扣的形式不一样,考察头文件的书写、数据结构的书写、…...
Druid GetConnectionTimeoutException解决方案之一
> Druid版本:v1.2.18 最近项目中经常出现:com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 120000, active 0, maxActive 128, creating 0, createErrorCount 2,但是其他平台连接这个数据源正常的 于是做了一个实验复…...
【JavaScript爬虫记录】记录一下使用JavaScript爬取m4s流视频过程(内含ffmpeg合并)
前言 前段时间发现了一个很喜欢的视频,可惜网站不让下载,简单看了一下视频是被切片成m4s格式的流文件,初步想法是将所有的流文件下载下来然后使用ffmpeg合并成一个完整的mp4,于是写了一段脚本来实现一下,电脑没有配python环境,所以使用JavaScript实现,合并功能需要安装ffmpeg,…...
CSDN2024年度总结|乾坤未定你我皆是黑马|2025一起为了梦想奋斗加油少年!!!
CSDN2024年我的创作纪念日1024天|不忘初心|努力上进|积极向前 一、前言:二、2024个人成长经历:HarmonyOS鸿蒙应用生态构建与扩展——杭州站AGI创新工坊&神经网络大模型——杭州站 三、2024年度创作总结:2024创作数据总结:博客…...
【前端】 react项目使用bootstrap、useRef和useState之间的区别和应用
一、场景描述 我想写一个轮播图的程序,只是把bootstrap里面的轮播图拉过来就用上感觉不是很合适,然后我就想自己写自动轮播,因此,这篇文章里面只是自动轮播的部分,没有按键跟自动轮播的衔接部分。 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 …...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
