Redis之二:Redis 常用命令
Redis 命名不区分大小写
0.登录远程服务器
如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。
语法
$ redis-cli -h host -p port -a password
获取配置信息:
CONFIG GET CONFIG_SETTING_NAME
例:
CONFIG GET loglevel CONFIG GET * # 获取所有配置信息
Redis 数据类型
Redis支持五种数据类型:
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
String(字符串)
string 是 redis 最基本的类型,string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。
string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。
举例:
1、set name “zhang” # 键值对 name赋值2、get name # 通过name 取值3、del name # 删除 移除键值4、set name wang # key相同 则覆盖5、mset age 12 sex "男" # 同时赋值多个,注意成对。否则异常报错6、Mget age name sex # 同时打印多个值 ,根据key7、Getrange name 0 3 # 获取子串8、Incr age # 对age 自增操作9、Incrby age 4 # 对age 加上指定 数10、Decr age # 对age 做减一操作11、Decrby age 5 # 对age 减去指定值12、Exists name # 判断键是否存在13、Strlen name # 获取键值的字符个数14、Append name “abc” # 给原有的字符串追加字符串15、Getset name zhangsan # 给键name赋值同时返回原有的旧值
下面关于key的有效期限:
16、expire name 10 # 设置name的过期时间 单位秒17、ttl name # 查看剩时 不存在返回-2 存在且永不过期-1 18、persist name # 移除 key 的过期时间,key 将持久保持。19、 set name zhang ex 10 # 设置键值同时指定过期时间10s .20、set name zhang px 10000 # 单位是毫秒 nx 单位是纳秒21、pttl name # 获取剩余的毫秒数22、randomkey # 随机从数据库返回键
切换数据库
默认提供16个 数据库名分别为 0~15
1、 select 1 # 切换为数据库1 为数据库的编号2、Select 2 # 切换为数据库2,所操作的数据是不同的3、Select 16 # 会报错,不存在16的数据库
Hash(哈希)
Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。每个 hash 可以存储 232 -1 键值对(40多亿)
#person为对象名,后面为属性键值对(多个)
1、Hmset person id 1 name “zhangsan” age 23 2、Hset person sex “男” # 对象单个属性赋值3、Hmget person id # 打印person对象的id属性的值4、Hmget person id name # 同时打印person 对象id和name 属性值 5、Hgetall person # 取出所有属性6、Hdel person age # 删除对象的属性7、Hlen person # 对象中属性个数8、Hmget person age name # 同时取出对象中多个属性的值9、Hkeys person # 取出所有属性10、Hvals person # 取出所有值
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
1、Lpush fruit apple # 在list对象fruit中放入apple2、Lpush fruit orange # 在list对象fruit中放入orange3、Lpush fruit banana # 在list对象fruit中放入banana4、Lrange fruit 0 2 # 按下标取三个元素 后面索引号 可以大于总个数。 5、Lrange fruit 0 -1 # 取出全部元素# 下面同时放入多个元素6、Lpush words A B C # 在左边头部插入 结果为 C B A7、Rpush words E F G # 在右边尾部追加 结果为 C B A E F G8、Llen words # 列表元素个数9、Lpop words # 弹出移除队头元素并输出10、Rpop words # 移除弹出队尾最后元素并输出11、Lset words 2 H # 在指定位置插入元素(覆盖)12、Lindex words 2 # 获取列表中指定位置上元素13、Ltrim words 2 4 # 删除列表中从2到4的之外元素14、Lrem words 2 “A” #删除2个元素值为”A”的元素15、Blpop list1 list2 10
#在指定的时间内10秒,从左到右扫描list1,list2 对第一个非空list做pop操作,如果找到非空完成一个pop则停止。如果全部为空,则在指定时间内等待,如果超时则停止。等待期间,如果其他客户在list放入元素,则会执行pop 后结束16、Rpoplpush list1 list2 # 从list1头部移除元素到list2尾部
Set(集合)
Redis 的 Set 是 string 类型的无序集合。
具有唯一、无序的集合特点
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
语法:
sadd collname element1 element2 element3
smembers collname
案例:
1、Sadd myset A B C D A # 在myset集合放入ABCD四个元素,A重复,不能放入2、Smembers myset # 读取myset 集合元素内容3、Srem myset A # 移除myset集合中元素 A4、Spop myset # 随机弹出一个元素5、Scard myset # 元素个数6、Smove set1 set2 A # 从set1集合中移除元素A 到set2集合中7、Sismember set1 A # 判断set1集合中是否包含A元素8、Sinter set1 set2 # 输出集合交集9、Sinterstore dest set1 set2 # 计算set1 set2 交集存入dest集合10、Sunion set1 set2 # 输出并集11、Sunionstore dest set1 set2 # 并集 存入dest集合12、Sdiff set1 set2 # 差集
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。分数相当于权重。
zset的成员是唯一的,但分数(score)却可以重复。
zadd 命令: 添加元素到集合,元素在集合中存在则更新对应 score
语法:zadd key score member
案例:
1、Zadd mycoll 1 zhang # 向 mycoll 集合中添加 zhang 分值为12、Zadd mycoll 3 wang # 向 mycoll 集合中添加 wang 分值为33、Zadd mycoll 0 zhao # 向 mycoll 集合中添加 zhao 分值为04、Zadd mycoll 1 lisi 2 liusan # 一次性添加多个元素成员5、Zrange mycoll 0 5 # 取出从0到5的元素,默认无序显示6、Zrangebyscores mycoll 0 5 # 按分数从小到大显示0到5元素7、Zrangebyscores mycoll 0 5 limit 2 # 排序 显示0-5 中的前2个元素8、Zrange mycoll 0 5 withscores # 显示元素及其分数9、zcount mycoll 2 5 # 显示分数为2和5之间的元素个数10、zrank mycoll wang # 返回 元素 wang 在集合中的排名11、zrevrange my 0 -1 withscores # 降序排列显示全部12、zrem my AAA # 移除指定元素13、zcard my # 获取指定集合中元素数量14、zpopmax mycoll 1 # 移除并返回1个分数最高的元素15、zpopmin mycoll 1 # 移除并返回1个分数最高的元素
特殊类型
Geospatial 地理位置
朋友的定位,周边的朋友,打车距离计算?
Redis 的 Geo 在Redis3.2 版本就推出了! 这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人!
命令:GEOADDkey longitude latitude member [longitude latitude member]
将指定的地理空间位置(纬度、经度、名称)添加到指定的
key
中
命令:GEOPOS key member [member ...]
从
key
里返回所有给定位置元素的位置(经度和纬度)
命令:GEODIST key member1 member2 [unit]
返回两个给定位置之间的距离。
如果两个位置之间的其中一个不存在, 那么命令返回空值。
指定单位的参数 unit 必须是以下单位的其中一个:
- m 表示单位为米。
- km 表示单位为千米。
- mi 表示单位为英里。
- ft 表示单位为英尺。
命令:GEORADIUSkey longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。
范围可以使用以下其中一个单位:m km mi ft
在给定以下可选项时, 命令会返回额外的信息:
WITHDIST
: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。WITHCOORD
: 将位置元素的经度和维度也一并返回。WITHHASH
: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大。
127.0.0.1:6379> geoadd china 116.40 39.90 beijing ### 将 beijing 经纬度添加到 key:china 中
(integer) 1
127.0.0.1:6379> geoadd china 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd china 106.50 29.53 chongqi 114.05 22.52 shenzhen
(integer) 2
127.0.0.1:6379> geoadd china 120.16 30.24 hangzhou 108.96 34.26 xian ## 将 两个城市 经纬度添加到 key:china 中
(integer) 2
127.0.0.1:6379> geopos china beijing #### 查看 beijing 的经纬度
1) 1) "116.39999896287918091"2) "39.90000009167092543"
127.0.0.1:6379> geopos china shanghai
1) 1) "121.47000163793563843"2) "31.22999903975783553"
127.0.0.1:6379> geodist china shanghai beijing ##### 计算两个城市间距离 默认单位 m
"1067378.7564"
127.0.0.1:6379> geodist china shanghai beijing km
"1067.3788"
127.0.0.1:6379> georadius china 116 39 1000 km ### 找出以116,39为中心点,半径1000km 以内的城市有那几个
1) "beijing"
2) "shanghai"
3) "xian"
127.0.0.1:6379> georadius china 116 39 200 km
1) "beijing"
127.0.0.1:6379> georadius china 116 39 1000 km withdist ### 捎带距离中心点的城市的具体距离
1) 1) "beijing"2) "105.8343"
2) 1) "shanghai"2) "996.7785"
3) 1) "xian"2) "819.7858"
127.0.0.1:6379>
信息查询
INFO [section]
起始版本:1.0.0
INFO
命令以一种易于理解和阅读的格式,返回关于Redis服务器的各种信息和统计数值。
通过给定可选的参数 section ,可以让命令只返回某一部分的信息:
server
: Redis服务器的一般信息clients
: 客户端的连接部分memory
: 内存消耗相关信息persistence
: RDB和AOF相关信息stats
: 一般统计replication
: 主/从复制信息cpu
: 统计CPU的消耗commandstats
: Redis命令统计cluster
: Redis集群信息keyspace
: 数据库的相关统计
它也可以采取以下值:
all
: 返回所有信息default
: 值返回默认设置的信息
相关文章:
Redis之二:Redis 常用命令
Redis 命名不区分大小写 0.登录远程服务器 如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。 语法 $ redis-cli -h host -p port -a password 获取配置信息: CONFIG GET CONFIG_SETTING_NAME 例: CONFIG GE…...

npm 镜像源切换与设置
项目背景 依赖安装中断或响应特别慢。 可以看到当前所用的镜像是 https://registry.npmjs.org 。 切换淘宝镜像之后总算能够安装下来 命令行模式 查看当前镜像源 # 查看当前镜像源 npm config get registry 可以看到默认情况下是官方默认全局镜像 https://registry.npmjs.o…...

【HDFS】Decommision(退役) EC数据节点剩最后几个块卡住的问题
一、背景 近期操作退役EC集群的节点。在退役的过程中,遇到了一些问题。特此总结一下。 本文描述的问题现象是: 每一批次退役10个节点,完全退役成功后开始操作下一批。 但是,中间有一批次有2台节点的Under Replicated Blocks一直是1,不往下降。 处于Decommissioning状态卡…...
MySQL知识点归纳总结(一)
1、事务的四大特性? 事务特性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性 (Durability)。 原子性是指事务包含的所有操作要么…...

SocketWeb实现小小聊天室
SocketWeb实现小小聊天室 消息推送的常见方式轮询长轮询SSE(server-sent event):服务器发送事件WebSocketWebSocket简介WebSocket API 实现小小聊天室实现流程消息格式客户端-->服务端服务端-->客户端 消息推送的常见方式 轮询 浏览器…...
如何在启用Secure Boot的Ubuntu 22.04电脑中安装使用VirtualBox 6.1
我使用的是华为Matebook X Pro笔记本电脑,默认开启了UEFI安全引导(UEFI Secure Boot),安装了Windows和Ubuntu双操作系统,平时基本上都是使用Ubuntu 22.04(Linux Mint 21.3),使用上也…...

基于B/S+MySQL+Tomcat开发的旅游信息管理系统
基于B/SMySQLTomcat开发的旅游信息管理系统 项目介绍💁🏻 塞北村镇旅游网站设计主要用于实现旅游景点信息管理,基本功能包括:主界面模块设计,用户注册模块,旅游景点模块,酒店预订模块࿰…...
mac m3安装nvm安装说明;mac安装xbrew
安装说明说明: 1.安装brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"2.安装nvm brew install nvm3.创建.nvm目录 mkdir ~/.nvm4.编辑 ~/.zshrc 配置文件 vi ~/.zshrc5.在 ~/.zshrc 配置文件内添加内…...

【小沐学QT】QT学习之Web控件的使用
文章目录 1、简介1.1 Qt简介1.2 Qt下载和安装1.3 Qt快捷键1.4 Qt帮助 2、QtWeb控件2.1 测试代码1(QApplication)2.2 测试代码2(QApplicationQWidget)2.3 测试代码3(QApplicationQMainWindow)2.4 测试代码4&…...
word embedding
介绍: ASCII可以编码为计算机可以识别的数据,为什么还需要embedding? 计算机只是对“字母”进行ASCII编码,并没有对词汇的“Word”编码。词汇应该是咱们处理自然语言的最基本的元素,而不是字母。那么世界上有千千万万的Word&am…...
原码,反码,补码
原码 什么是原码 原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负 最大值 0 1 1 1 1 1 1 1 > 127 最小值 1 1 1 1 1 1 1 1 > -127 原码的弊端 利用原码对正数进行计算是不会有问题的 但是如果是负数计算…...

科技赋能,MTW400A为农村饮水安全打通“最后一公里”
日前,山东省政府纵深推进国家省级水网先导区建设,持续深化“水网”行动,着力构筑水安全保障网、水民生服务网、水生态保护网,建设水美乡村示范带、内河航运示范带、文旅融合示范带、绿色发展示范带,推动形成“三网四带…...

测试计划、测试方案、测试策略、测试用例的区别
一 测试计划 测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、各阶段的测试任务、时间进度安排,谁执行任务和风险控制等,可以包括测试策略。 二 测试方案 测试方案是指描述需要测试的特性、测试的方…...

c# 异常处理
异常类 .NET Framework 类库中的所有异常都派生于 Exception 类,异常包括系统异常和应用异常。 默认所有系统异常派生于 System.SystemException,所有的应用程序异常派生于 System.ApplicationException。 系统异常一般不可预测,比如内存堆…...
(delphi11最新学习资料) Object Pascal 学习笔记---第6章第3节(传递字符串作为参数)
6.3 字符串数据类型 Object Pascal 中的字符串数据类型比简单的字符数组复杂得多,其功能远远超出了大多数编程语言为类似数据类型提供的功能。在本节中,我将介绍这种数据类型背后的关键概念;在接下来的章节中,我们将更详细地探…...

k8s节点负载使用情况分析命令kubectl describe node [node-name]
1.到任意安装了kubectl节点命令的节点上执行kubectl describe node [node-name] 上面的Requests最小分配 Limits最大分配是所有pod之和,最小分配之和不能超过服务器实际参数,否则新的pod会因为资源不够起不来,最大分配是预设之和࿰…...

自动驾驶加速落地,激光雷达放量可期(上)
1 激光雷达应用广泛,汽车有望成最大催化 激光雷达(LiDAR)是一种主动遥感技术,通过测定传感器发出的激光在传感器与目标物体之间的传播距离,来分析目标地物表面的反射能量大小、反射波谱的幅度、频率和相位等信息&#…...
变量的间接引用
场景: 如果第一个变量的值是第二个变量的名字,我们能够从第一个变量中取得第二个变量的值吗?例如,如果aztj且ztjz,那么我们能够通过引用变量a来获得值z吗?答案是可以,它被称为间接引用…...
学习JAVA的第六天(基础)
目录 集合 集合和数组的对比 ArrayList成员方法 ArrayList成员方法代码展示 练习 集合的遍历01之字符串 集合的遍历02之数字 集合的遍历03之学生对象 集合 集合和数组的对比 从长度维度来看 数组长度固定 集合长度可变从存储类型维度来看 数组可以存放基本数据类型和…...

LeetCode 2673.使二叉树所有路径值相等的最小代价:自顶向下的DFS 或 自底向上的递推
【LetMeFly】2673.使二叉树所有路径值相等的最小代价:自顶向下的DFS 或 自底向上的递推 力扣题目链接:https://leetcode.cn/problems/make-costs-of-paths-equal-in-a-binary-tree/ 给你一个整数 n 表示一棵 满二叉树 里面节点的数目,节点编…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...

第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...

uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)
本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢,连接红外测温传感器,可实时精准捕捉宠物体温变化,以便及时发现健康异常;水位检测传感器时刻监测饮用水余量,防止宠物…...