redis常用的五种数据类型

news2025/4/22 13:16:02

redis常用的五种数据类型

文档

  1. redis单机安装
  2. redis数据类型-位图bitmap

说明

  1. 官网操作命令指南页面:https://redis.io/docs/latest/commands/?name=get&group=string

常用命令

  1. keys *:查看所有键
  2. exists k1 k2:键存在个数
  3. type k1:键k1对应值的数据类型
  4. del k1:删除键k1
  5. unlink k1:非阻塞删除
  6. ttl k1:k1的过期时间
  7. expire k1 10:给k1设置过期时间,10s
  8. select 1:切换到数据库1
  9. move k1 1:将k1移动到数据库1
  10. dbsize:查看当前库键的数量
  11. flushdb:清空当前库
  12. flushall:清空全部库
  13. help @string:查看string类型的操作命令

redis常用的五种数据类型

1. 字符串:String
基本命令
  1. set k1 hello nx:键k1不存在时设置成功
  2. set k1 hello xx:键k1存在时设置(更新)成功
  3. set k1 hello get:键k1设置新值,并返回上次设置的值
  4. set k1 hello ex 10:键k1设置值,并设置过期时间,10s
  5. set k1 hello px 10000:键k1设置值,并设置过期时间,10000毫秒
  6. set k1 hello exat 1745055900:键k1设置值,并设置到期时间,unix时间戳,秒值
  7. set k1 hello keepttl:键k1设置值,并保持当前的过期时间
批量命令
  1. mset k1 hello k2 world:批量设置,键k1、k2分别设置值
  2. mget k1 k2:批量获取值,键k1、k2分别获取值
  3. msetnx k1 hi k3 nihao:批量设置,键都不存在时设置成功,保证原子性
范围操作
  1. getrange k1 0 3:获取k1值下标[0,3]部分的字符串,左闭右闭
  2. getrange k1 0 -2:获取k1值下标0到-2部分的字符串,-2表示倒数第2个,-1表示最后1个
  3. setrange k1 1 aabb:设置k1的值,从原来的值下标为1的字符开始,对应下标的值替换为aabb
数值操作
  1. incr k1:键k1的值自增1,键k1的值要保证是数字
  2. incrby k1 2:键k1的值自增2
  3. decr k1:键k1的值自减1
  4. decrby k1 2:键k1的值自减2
其它操作
  1. strlen k1:获取键k1的值占用的子节数
  2. append k1 aabb:字符串追加
  3. getset k1 hello:键k1设置新值,并返回上次设置的值,与set k1 hello get相同
其它说明
  1. SETEXSETNXPSETEX命令可能会在未来版本中淘汰
2. 列表:List
基本命令
  1. lpush list1 1 2 3:从队列左边加入依次加入元素,新元素在队列头部
  2. rpush list1 1 2 3:从队列右边加入依次加入元素,新元素在队列尾部
  3. lrange list1 0 -1:从队列左边到右边,也就是队列头部到尾部的顺序,依次获取元素
  4. lpop list1:从队列左边,也就是头部,弹出一个元素
  5. rpop list1:从队列右边,也就是尾部,弹出一个元素
  6. lindex list1 0:获取下标为0的元素,队列头部到尾部的顺序
  7. llen list1:获取列表元素个数
  8. lrem list1 3 1:从队列左边到右边,也就是队列头部到尾部的顺序,删除3个值为1的元素
  9. ltrim list1 2 5:从队列左边到右边顺序,截取下标2-5的元素,左闭右闭,作为list1新的值
  10. rpoplpush list1 list2:弹出list1尾部的元素,加入到list2的头部
  11. lset list1 1 5:下标为1的元素,重新赋值为5
  12. linsert list1 before 1 0:值为1的元素前面,添加新元素0
  13. linsert list1 after 1 2:值为1的元素后面,添加新元素2
3. 哈希表:Hash
基本命令
  1. hset hashmap1 id 1 name zhangsan:向hashmap1中加入id、name属性并赋值
  2. hmset hashmap1 id 1 name zhangsan:向hashmap1中加入id、name属性并赋值,与hset相同
  3. hget hashmap1 id:获取hashmap1中,id属性的值
  4. hmget hashmap1 id name:获取hashmap1中,id、name属性的值
  5. hgetall hashmap1:获取hashmap1中,所有的属性及值
  6. hdel hashmap1 id:删除hashmap1中,id属性
  7. hlen hashmap1:获取hashmap1属性的个数
  8. hexists hashmap1 id:判断hashmap1中,是否存在id属性
  9. hkeys hashmap1:获取hashmap1中,所有的属性
  10. hvals hashmap1:获取hashmap1中,所有属性的值
  11. hsetnx hashmap1 age3 20:不存在hashmap1,或hashmap1中不存在age3属性,设置成功
数值操作
  1. hincrby hashmap1 age 2:hashmap1中age属性的值自增2,age属性的值要保证是数字
  2. hincrbyfloat hashmap1 score 0.5:hashmap1中score属性的值自增0.5
4. 集合:Set
基本命令
  1. sadd set1 1 1 2 3:添加元素,自动去重
  2. smembers set1:获取set1的所有元素
  3. sismember set1 3:判断元素3是否在set1中
  4. srem set1 1 2:删除set1中元素1、元素2
  5. scard set1:获取元素个数
  6. srandmember set1 2:随机获取2个元素
  7. spop set1 2:随机弹出2个元素,删除
  8. smove set1 set2 3:元素3从set1中弹出,添加到set2中,无该元素则不执行
集合运算
  1. sdiff set1 set2:查询属于set1,但不属于set2的元素,差集,set1 - set2
  2. sunion set1 set2:查询属于set1或set2的元素,并集,set1 ∪ set2
  3. sinter set1 set2:查询属于set1,并且属于set2的元素,交集,set1 ∩ set2
  4. sintercard 2 set1 set2 limit 10:查询2个集合中,交集元素的个数,最多查询10个
5. 有序集合:ZSet
基本命令
  1. zadd zset1 20 zhangsan 30 lisi 40 wangwu 20 maliu 25 wangwu:添加元素,根据值去重,取后面设置的分数
  2. zrange zset1 0 -1:获取zset1的所有元素,分数从小到大
  3. zrange zset1 0 -1 withscores:获取zset1的所有元素及分数,分数从小到大
  4. zrevrange zset1 0 -1:获取zset1的所有元素,分数从大到小
  5. zrange zset1 20 25 byscore:获取分数在20到25之间的元素,左闭右闭,与zrangebyscore zset1 20 25相同
  6. zrange zset1 20 25 byscore limit 1 2:获取分数在20到25之间的元素,左闭右闭,下标是1开始,取2个
  7. zrange zset1 20 25 byscore withscores:获取分数在20到25之间的元素及分数,左闭右闭
  8. zrange zset1 (20 25 byscore:获取分数在20到25之间的元素,不包括20,左开右闭
  9. zscore zset1 zhangsan:获取元素分数
  10. zcard zset1:获取元素个数
  11. zrem zset1 zhangsan lisi:删除zet1中元素zhangsan、元素lisi
  12. zincrby zset1 20 wangwu:给wangwu的分数增加20
  13. zcount zset1 20 30:获取分数在20到25之间的元素个数
  14. zmpop 2 zset1 zset2 min count 2:找到第一个非空有序集合,弹出该集合中分数最小的2个元素
  15. zrank zset1 wangwu:获取wangwu在zset1的下标,下标从0开始
  16. zrevrank zset1 wangwu:获取wangwu在zset1中,倒序的下标,下标从0开始

redis其它数据类型

  1. 地理空间:GEO
  2. 基数统计:HyperLogLog
  3. 位图:bitmap
  4. 位域:bitfield
  5. 流:Stream

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTos学习记录--2.内存管理

后续的章节涉及这些内核对象:task、queue、semaphores和event group等。为了让FreeRTOS更容易使用,这些内核对象一般都是动态分配:用到时分配,不使用时释放。使用内存的动态管理功能,简化了程序设计:不再需…

HAL库(STM32CubeMX)——高级ADC学习、HRTIM(STM32G474RBT6)

系列文章目录 文章目录 系列文章目录前言存在的问题HRTIMcubemx配置前言 对cubemx的ADC的设置进行补充 ADCs_Common_Settings Mode:ADC 模式 Independent mod 独立 ADC 模式,当使用一个 ADC 时是独立模式,使用两个 ADC 时是双模式,在双模式下还有很多细分模式可选 ADC_Se…

单例模式(线程安全)

1.什么是单例模式 单例模式(Singleton Pattern)是一种创建型设计模式,旨在确保一个类只有一个实例,并提供一个全局访问点来访问该实例。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单…

FreeRTos学习记录--1.工程创建与源码概述

1.工程创建与源码概述 1.1 工程创建 使用STM32CubeMX,可以手工添加任务、队列、信号量、互斥锁、定时器等等。但是本课程不想严重依赖STM32CubeMX,所以不会使用STM32CubeMX来添加这些对象,而是手写代码来使用这些对象。 使用STM32CubeMX时&…

进程控制(linux+C/C++)

目录 进程创建 写时拷贝 fork 进程终止 退出码 进程退出三种情况对应退出信号 :退出码: 进程退出方法 进程等待 两种方式 阻塞等待和非阻塞等待 小知识 进程创建 1.在未创建子进程时,父进程页表对于数据权限为读写,对于…

TensorBoard如何在同一图表中绘制多个线条

1. 使用不同的日志目录 TensorBoard 会根据日志文件所在的目录来区分不同的运行。可以为每次运行指定一个独立的日志目录,TensorBoard 会自动将这些目录中的数据加载并显示为不同的运行。 示例(TensorFlow): import tensorflow…

微软Entra新安全功能引发大规模账户锁定事件

误报触发大规模锁定 多家机构的Windows管理员报告称,微软Entra ID新推出的"MACE"(泄露凭证检测应用)功能在部署过程中产生大量误报,导致用户账户被大规模锁定。这些警报和锁定始于昨夜,部分管理员认为属于误…

基于FPGA的一维时间序列idct变换verilog实现,包含testbench和matlab辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 DCT离散余弦变换 4.2 IDCT逆离散余弦变换 4.3 树结构实现1024点IDCT的原理 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) matlab仿真结果 FPGA仿真结果 由于FP…

Linux进程5-进程通信常见的几种方式、信号概述及分类、kill函数及命令、语法介绍

目录 1.进程间通信概述 1.1进程通信的主要方式 1.2进程通信的核心对比 2.信号 2.1 信号的概述 2.1.1 信号的概念 2.2信号的核心特性 2.3信号的产生来源 2.4信号的处理流程 2.5关键系统调用与函数 2.6常见信号的分类及说明 2.6.1. 标准信号(Standard Sig…

[架构之美]一键服务管理大师:Ubuntu智能服务停止与清理脚本深度解析

[架构之美]一键服务管理大师:Ubuntu智能服务停止与清理脚本深度解析 服务展示: 运行脚本: 剩余服务: 一、脚本设计背景与核心价值 在Linux服务器运维中,服务管理是日常操作的重要环节。本文介绍的智能服务管理脚本&a…

C++算法(10):二叉树的高度与深度,(C++代码实战)

引言 在二叉树的相关算法中,高度(Height)和深度(Depth)是两个容易混淆的概念。本文通过示例和代码实现,帮助读者清晰区分二者的区别。 定义与区别 属性定义计算方式深度从根节点到该节点的边数根节点深度…

Psychology 101 期末测验(附答案)

欢呼 啦啦啦~啦啦啦~♪(^∇^*) 终于考过啦~ 开心(*^▽^*) 撒花✿✿ヽ(▽)ノ✿ |必须晒下证书: 判卷 记录下判卷,还是错了几道,填空题2道压根填不上。惭愧~ 答案我隐藏了,实在想不出答案的朋友可以留言,不定时回复。 建议还是认认真真的学习~认认真真的考试~,知识就…

安全协议分析概述

一、概念 安全协议(security protocol),又称密码协议。是以密码学为基础的消息交换协议,在网络中提供各种安全服务。(为解决网络中的现实问题、满足安全需求) 1.1 一些名词 那什么是协议呢? …

基础学习:(7)nanoGPT 剩下的细节

文章目录 前言3 继续巴拉结构3.1 encode 和 embedding3.2 全局layernorm3.3 lm_head(language modeling) 和 softmax3.4 softmax 和 linear 之间的 temperature和topk3.5 weight tying 前言 在 基础学习:(6)中, 在运行和训练代码基础上,向代…

Spark-SQL连接Hive总结及实验

一、核心模式与配置要点 1. 内嵌Hive 无需额外配置,直接使用,但生产环境中几乎不使用。 2. 外部Hive(spark-shell连接) 配置文件:将hive-site.xml(修改数据库连接为node01)、core-site.xml、…

Linux Wlan-四次握手(eapol)框架流程

协议基础 基于 IEEE 802.1X 标准实现的协议 抓包基础 使用上一章文章的TPLINK wn722n v1网卡在2.4G 频段抓包(v2、v3是不支持混杂模式的) eapol的四个交互流程 根据不同的认证模式不同,两者的Auth流程有所不同,但是握手流程基…

web组件和http协议

1.web组件 2.自定义元素 3.影子DOM 4.HTML模板 5.http协议 6.tcp ip协议

软件工程师中级考试-上午知识点总结(下)

6. 知识产权和标准化 软件著作权客体:指的是受软件著作权保护的对象,即计算机程序和相关文档。知识产权具有严格的地域性。不受保护期限制:著名权、修改权、保护作品完整权;注意的是,发表权受保护期限制。专利权在期满…

IO流--字节流详解

IO流 用于读写数据的(可以读写文件,或网络中的数据) 概述: I指 Input,称为输入流:负责从磁盘或网络上将数据读到内存中去 O指Output,称为输出流,负责写数据出去到网络或磁盘上 因…

Cesium学习笔记——dem/tif地形的分块与加载

前言 在Cesium的学习中,学会读文档十分重要!!!在这里附上Cesium中英文文档1.117。 在Cesium项目中,在平坦坦地球中加入三维地形不仅可以增强真实感与可视化效果,还可以​​提升用户体验与交互性&#xff0c…