redis命令行操作五种数据类型

2023-11-07

1、redis有关key的操作命令

1)查看数据库中的key:keys pattern
								->*:匹配0个后多个字符
								->?:匹配一个字符
								->[]:匹配一个里边的一个字符
		例如:keys *:查看数据库中所有的key
			keys k*:查看数据库中所有一卡头的key
			keys k?e:查看一k开头,一e结尾的,并且中间只有一个字符的key
			keys h[cde]llo:查看一h靠头,以o结尾,并且h后边只能在cde中取一个字符的key

	2)判断某个key是否存在数据库中:exists key 如果存在,则返回1,否则返回0
									exists key key key key	返回值是存在key的数量

	3)移动指定的key到指定的数据库实例:move key index(库号)

	4)查看指定key的剩余生存时间:ttl	key	如果key在当前库不存在,返回2-;如果没有设置生存时间,返回-1

	5)给可以设置最大生存时间:expire key seconds	超过时间后自动删除
		expire 20;

	6)查看指定可以的数据类型:type key

	7)重命名key: rename key newkey

	8)删除key:del key	删除指定的key,返回值实际删除key的数

2、redis中关于string类型数据的操作命令

	1)将string类型的数据类型设置到redis中:set key keyvalue
		set zsname zhangsan
		set zsage 20
		如果key已经存在了,则后来的value会把以前的value覆盖掉

	2)从redis中获取string类型的数据:get key
		get zsname
		get zsage
	
	3)追加字符串:append key value	返回追加之后的字符串长度,如果可以不存在,则新建一个key,并把value值设置进去
		set phone 149990
		append phone 123

	4)获取字符串数据的长度:strlen key

	5)将字符串数值进行加1运算:incr key
								|->返回加一后的数据
								|->如果key不存在,首先设置一个key,初始值为0,然后ince运算
								|->要求:key所表示的value必须是数值,否则报错
	
	6)将字符串数值进行加1运算:decr key
								|->返回减一后的数据
								|->如果key不存在,首先设置一个key,初始值为0,然后ince运算
								|->要求:key所表示的value必须是数值,否则报错

	7)将字符串数值进行加offset运算:incrby key offset
									|->返回加offset后的数据
									|->如果key不存在,首先设置一个key,初始值为0,然后incrby运算
									|->要求:key所表示的value必须是数值,否则报错

		incrby zszge 10

	8)将字符串数值进行加offset运算:decrby key offset
									|->返回减offset后的数据
									|->如果key不存在,首先设置一个key,初始值为0,然后decrby运算
									|->要求:key所表示的value必须是数值,否则报错

		decrby zszge 10

	9)获取字符串中的子字符串:getrange key startindex endindex

	10)覆盖字符串:getrange key startindex value		用value来覆盖startindex下标开始的的字符串

	11)设置字符串数据的同时,设置它的最大生命周期:setex key seconds value
		setex temp 5 1

	12)设置string类型的数据value到数据库中,当key不存在时设置成功,否则放弃设置:setnx key value

	13)批量将string类型的数据设置到redis中:mset key2 value1 key2 value2 ...

	14)批量获取:mget key1 key2 key3...

	15)批量设置,当所有key都不存在时设置成功,只要有一个已经存在就放弃:msetnx key1 value1 key2 value2....

3、redis中关于list类型数据的操作命令 单key 多valu有序

	1)将一个或是多个值依次插入列表的表头(左侧):lpush key value ...
		lpush list01 1 2 3	===  list[3,2,1]

	2)获取指定列表中的元素,lrange key startindex endindex
		lrange list01 1 3 

	3)将一个或是多个值依次插入列表的表尾(右侧):rpush key value.....

	4)移除指定列表数据表头,并返回表头元素(只是删掉了表头):lpop key

	5)移除指定列表数据表尾,并返回表尾元素(只是删掉了表尾):rpop key

	6)获取列表指定下标的元素:lindex key index

	7)获取指定列表的长度:llen key

	8)移除列表中某些数据:lrem key count value
								->count>0:从表头位置移除count个和value相等的是数据
								->count<0:从表尾位置移除count个和value相等的是数据

4、redis中关于set类型数据的操作命令:单key 多value无序 不重复

	1)将一个或多个元素添加到集合中:sadd  key value ....
		如果元素已经存在,则会忽略放入
		返回成功加入元素的个数
		sadd set01 a b b c      结果:a b c

	2)获取指定结合的所有元素:smembers key

	3)判断指定元素在指定集合中是否存在:sismember key vlaue
		*存在,返回1
		*不存在,返回0

	4)获取指定集合的长度:scard key

	5)移除指定集合中一个或多个元素:srem key member ...
		*返回成功移除的个数 

	6)随机获取指定集合中的一个或多个元素:srandember key count
														->count > 0:随机获取的多个元素不能重复
														->count < 0:随机获取的多个元素可能重复
														->不加count,默认获取一个元素

	7)随机从指定集合移除一个或多个元素:spop key count

	8)将指定集合中的指定元素移动到另一个集合:smove source dest member
		smove set01 set02 a

	9)获取第一个集合中有,其他集合中没有的元素组成的新集合(差集):sdiff key1 kye2 ...

	10)获取所有指定集合中都有的元素组成的新集合(交集):sinter key1 key2....

	11)获取所有指定集合所有元素组成的集合(并集):sunion key1 key2 ....

5、redis中关于hash类型数据的操作命令:单key,

	1)将一个或多个field-value对设置到哈希表中:hset key field1 value field2 value
		hset student01 id 1001 name zhangsan age 20

	2)获取指定哈希表中指定哈希表中指定filed的值:hget key field
		hget student01 name

	3)批量设置将多个field-value对设置到哈希表中:hmset key field 1 value1....
		*如果key field已经存在,则会覆盖

	4)批量获取指定哈希表中的field的值:hmget key field1 field2 field3....

	5)获取指定哈希表中所有的field和value:hgetall key

	6)从指定哈希表中删除一个或者多个field:hdel key field1 field2

	7)获取指定哈希表中所有的field个数:hlen key

	8)判断指定哈希表中是否存在某一个field:hexists key field

	9)获取指定哈希表值所有的field列表:hkeys:key

	10)获取指定哈希表值所有的value列表:hvals:key

	11)对指定哈希表中指定的field值进行加法(整数)运算:hincrby key field int 

	12)对指定哈希表中指定的field值进行加法(浮点数)运算:hincrbyfloat key field float

	13)将一个filed-value对设置到哈希表中,当key-field已经存在是,放弃设置;否则设置

6、rdis中关于zset类型数据的操作命令

redis中关于zset类型数据的操作命令:有序集合,本质上是集合,所有元素不能重复
每一个元素都关联一个分数,redis会根据分数对元素进行自动排序
分数可以重复
有序集合中元素的排序规则和列表中的排序规则不一样

	1)将一个或者多个member及其分数值加入有序集合(必须关联分数,不然加不进):zadd key score member
			*如果元素已经存在,则把分数覆盖掉
			zadd zset01 20 z1 30 z2 50 z3 40 z4				分数的确定与业务有关


	2)获取指定有序集合中指定下标的元素:zrange key startIndex endIndex 
			zrange zset01 0 -1
			zrange zset01 0 -1 withscores		可以同时显示分数

	3)获取指定有序集合中指定分数区间的元素:zrangebyscore key min max withscores
	
	4)删除指定有序集合中一个或多个元素:zrem key mermber1 member2...

	5)获取指定有序集合中所有元素的个数:zcard key

	6)获取指定有序集合中指定元素的排名: zrank key member

	7)获取指定有序集合中指定分数在指定区间内的个数:zcount key min max

	8)获取指定有序集合中指定元素的分数:zscor key member

	9)获取指定有序集合中指定元素的排名(按分数从大到小):zrevrank key member

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis命令行操作五种数据类型 的相关文章

  • socket.io redis 和内存泄漏

    我的socket io版本是 电子邮件受保护 cdn cgi l email protection and 电子邮件受保护 cdn cgi l email protection 我在 Windows 上 在某些地方 我看到问题已得到解决 我
  • Redis 块推送直到列表有空位

    我正在寻找类似的东西BLPUSH该命令将阻塞 直到列表的长度低于指定值max size 目的是防止生产者运行速度快于消费者时列表无限增长 功能与 python 非常相似Queue put https docs python org 3 li
  • Stackexchange.redis 缺乏“WAIT”支持

    我在客户端应用程序正在使用的负载均衡器后面有 3 个 Web API 服务器 我正在使用这个库来访问具有一个主服务器和几个从服务器的 Redis 集群 目前不支持 WAIT 操作 我需要此功能来存储新创建的用户会话并等待它复制到所有从属服务
  • 仅当尚未设置时才进行原子设置

    仅当尚未在 Redis 中设置时 是否有办法执行原子设置 具体来说 我正在创建一个像 myapp user user email 这样的用户 并且希望 Redis 在 user email 已被占用时返回错误 而不是默默地替换旧值 比如声明
  • 为什么Redis中不建议使用KEYS?

    在Redis中 建议不要使用按键命令 https redis io commands KEYS 为什么会这样呢 是因为它的时间复杂度是 O N 吗 或者是别的什么原因 我做了下面的实验来证明KEYS命令有多么危险 当带有 KEYS 的一个命
  • WSL Redis 遇到系统尚未使用 systemd 作为 init 系统(PID 1)启动。无法操作[已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试遵循本文中讨论的 Redis 安装过程article https www digitalocean com community
  • Redis 排序集和解决关系

    我正在使用 Redis 排序集来存储我正在处理的项目的排名 我们没有预料到 我们想要如何处理关系 Redis 按字典顺序对具有相同分数的条目进行排序 但我们想要做的是对具有相同分数的所有条目给予相同的排名 例如在以下情况 redis 127
  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • 通过 StackExchange.Redis 连接到 Redis Servier

    我尝试使用以下方法制作一个测试项目Redis https redis io服务器 通过 Virtual Box 安装在 Linux Ubuntu 虚拟机上 Linux 机器通过 Virtual Box 的桥接适配器与本地网络连接 Virtu
  • SignalR 无法连接到 SSL 上的 Azure Redis

    我目前在 Azure 上托管我的 redis 缓存服务器 并让 signalR 依赖它作为骨干 使用以下内容 GlobalHost DependencyResolver UseRedis 服务器 端口 密码 eventKey 这可以在端口
  • 如何设置和获取Redis中存储的对象?

    我试图在 redis 中存储一个对象 当我获取该对象时 它似乎不起作用 I tried u User new u name blankman redis set test u x redis get test x name error 我想
  • Redis发布/订阅:查看当前订阅了哪些频道

    我目前有兴趣查看我拥有的 Redis 发布 订阅应用程序中订阅了哪些频道 当客户端连接到我们的服务器时 我们将它们注册到如下所示的通道 user user id 这样做的原因是我希望能够看到谁 在线 目前 我在不知道客户端是否在线的情况下盲
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • Redis Cluster 与 Pub/Sub 中的 ZeroMQ,用于水平扩展的分布式系统

    如果我要设计一个巨大的分布式系统 其吞吐量应随系统中的订阅者数量和通道数量线性扩展 哪个会更好 1 Redis集群 仅适用于Redis 3 0 alpha 如果是集群模式 您可以在一个节点上发布并在另一个完全不同的节点上订阅 消息将传播并到
  • 使用 Sentinels 升级 Redis 的最佳实践?

    我有 3 个 Redis 节点 由 3 个哨兵监视 我进行了搜索 文档似乎不清楚如何最好地升级此类配置 我目前使用的是 3 0 6 版本 我想升级到最新的 5 0 5 我对这方面的程序有几个疑问 升级两个大版本可以吗 我在我们的暂存环境中执
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • Redis是如何实现高吞吐量和高性能的?

    我知道这是一个非常普遍的问题 但是 我想了解允许 Redis 或 MemCached Cassandra 等缓存 以惊人的性能极限工作的主要架构决策是什么 如何维持连接 连接是 TCP 还是 HTTP 我知道它完全是用C写的 内存是如何管理
  • 使用 Celery 通过 Gevent 进行实时、同步的外部 API 查询

    我正在开发一个 Web 应用程序 该应用程序将接收用户的请求 并且必须调用许多外部 API 来编写对该请求的答案 这可以直接从主 Web 线程使用 gevent 之类的东西来扇出请求来完成 或者 我在想 我可以将传入的请求放入队列中 并使用
  • 如何使 Redis 缓存中数据层次结构(树)的部分内容无效

    我有一些产品数据 需要在 Redis 缓存中存储多个版本 数据由 JSON 序列化对象组成 获取普通 基本 数据的过程很昂贵 将其定制为不同版本的过程也很昂贵 因此我想缓存所有版本以尽可能进行优化 数据结构看起来像这样 BaseProduc
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis

随机推荐

  • Anaconda命令总结

    Anaconda搭建python学习环境 由于最近打算入坑机器学习 发现很多项目都会用到一些相同的包 每次都要到导入太麻烦了 而Anconda中的conda包管理工具可以提供一套通用的环境 可以极大地提高开发效率 本文主要介绍Anacond
  • idea使用sonarqube对项目代码检测

    idea使用sonarqube对项目代码检测 1 sonarqube的安装 参考网上教程安装即可 2 在本地maven配置文件中配置上安装好的sonarqube相关信息
  • linux学习文档

    汇总 链接 http pan baidu com s 1pLk8SSr 密码 p6b6 如有帮助 还请不吝 推荐 1 1 2序和硬件基础 pdf 链接 http pan baidu com s 1kVFjoTh 密码 powh 2 3中断机
  • Ubuntu安装NVIDIA 显卡驱动

    文章目录 前言 一 基本概念 二 操作步骤 1 显卡硬件型号 2 安装驱动 总结 前言 NVIDIA Nvidia Corporation n v di 港称乎为NVIDIA 台湾与香港译为辉达 中国大陆译为英伟达 创立于1993年1月 是
  • 使用JavaScript在水效果中创建动画粒子

    Water simulation with javascript Today we continue JavaScript lessons and our article will about using js in modeling of
  • ES6module

    开发规范 声明式函数应设置为常量 对象尽量静态化 一旦设置不得随意添加新的属性 或者使用Object assign 默认导出一个对象用大驼峰 函数的默认值 function test a b bool false console log b
  • Python 和 Raspberry Pi 基于 Ubuntu Core 实践 ROS 系统

    我们将使用 Ubuntu Core 并在 Raspberry Pi 上安装 Ubuntu Core 使用Python 创建基于 ROS 的工作包和启动文件 Ubutun Core 介绍和安装 Ubuntu Core 是 Ubuntu 的专门
  • JavaSE基础语法之 String 类

    目录 前言 一 常用方法 一 字符串构造 二 String 对象的比较 1 比较是否引用同一个对象 2 boolean equals Object anObject 方法 按照字典序比较 3 int compareTo String str
  • 图的深度优先遍历

    一 图遍历介绍 所谓图的遍历 即是对结点的访问 一个图有那么多个结点 如何遍历这些结点 需要特定策略 一般有两种访问策略 1 深度优先遍历 2 广度优先遍历 二 深度优先遍历基本思想 图的深度优先搜索 Depth First Search
  • hive-sql入门-实践摘记-持续更新

    Hive SQL记录 DQL Data QueryLanguage 只读权限 select DML Data manipulation language 数据操作语句 insert delete update DDL Data Defini
  • 【idea】IDEA全局搜索Jar包中内容(转载)

    转载 https blog csdn net qq 26012495 article details 109694133
  • ChatGPT研究分享:插件模式的利与弊

    目录 1 插件的实现方式 1 1 Toolformer 1 2 OpenAI插件文档 1 3 个人感想 2 一些有意思的点 2 1 知识和价值观 2 2 算法的研究方向 OpenAI近期公开了GPT 4 除了各方面性能的大幅度提升 最大的惊
  • shell中单引号、双引号的区别

    原文地址 http blog sina com cn s blog 5f5716580100l9k1 html hard quote 单引号 关闭所有的meta 什么是meta 自己查吧 soft quote 双引号 关闭大部分的meta
  • mysql中对视图的一系列操作

    一 知识讲解 1 数据库只储存视图的定义 不储存视图所对应的数据 2 视图可以进行插入 查询 删除和更新数据等操作 但是with check option 会对 where 子句中的条件 对其所进行的操作进行检查 3 当视图依赖多个基本表时
  • sqli-labs-master第15、16关

    前言 在第九关我们已经了解过GET方式的盲注 我们今天一起探讨下POST方式的盲注 第15关 http 192 168 89 134 sqli labs master Less 15 我们在尝试了 联合查询和报错注入方式后无果 我们初步判断
  • 调用存储过程并且使用返回值的基本方法

    调用存储过程并且使用返回值的基本方法 一直没有找到一种好的方法来引用有返回值的存储过程的方法 使我在添加数据中走了不少的弯路 最近 在查阅了大量的资料之后 终于在微软的一个实例中找到了一种良好的方法 首先编写好一有返回值的存储过程 crea
  • 宋浩-概率论与数理统计笔记

    有需要pdf版本的可以留言 没有更新假设检验部分 如有需要也可以更新
  • 技术博客能为你面试带来什么样的好处?

    作为一个老程序员 我看过的简历 面试过的程序员非常多 我直接说我的观点 写技术博客对面试中来说 有用 如果你有一个和岗位相关的的博客 Github 在我看来 这些能显得你这个人爱学习 爱总结分享 大厂里 很重视的一件事就是分享 分享经验 分
  • (18)语义分割--paddle--EISeg自动标注软件的使用和自己数据集的测试

    1 主要参考 1 使用过程 建议先看一下下面博主的视频 eiseg简单教学 哔哩哔哩 bilibili 2 软件使用 主要参考 百度飞浆EISeg高效交互式标注分割软件的使用教程 Leonard2021的博客 CSDN博客 安装eiseg
  • redis命令行操作五种数据类型

    这里写目录标题 1 redis有关key的操作命令 2 redis中关于string类型数据的操作命令 3 redis中关于list类型数据的操作命令 单key 多valu有序 4 redis中关于set类型数据的操作命令 单key 多va