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

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开发的旅游信息管理系统 项目介绍💁🏻 塞北村镇旅游网站设计主要用于实现旅游景点信息管理,基本功能包括:主界面模块设计,用户注册模块,旅游景点模块,酒店预订模块&#xff0…...

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会因为资源不够起不来,最大分配是预设之和&#xff0…...

自动驾驶加速落地,激光雷达放量可期(上)

1 激光雷达应用广泛,汽车有望成最大催化 激光雷达(LiDAR)是一种主动遥感技术,通过测定传感器发出的激光在传感器与目标物体之间的传播距离,来分析目标地物表面的反射能量大小、反射波谱的幅度、频率和相位等信息&#…...

变量的间接引用

场景: 如果第一个变量的值是第二个变量的名字,我们能够从第一个变量中取得第二个变量的值吗?例如,如果aztj且ztjz,那么我们能够通过引用变量a来获得值z吗?答案是可以,它被称为间接引用&#xf…...

学习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 表示一棵 满二叉树 里面节点的数目,节点编…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

pam_env.so模块配置解析

在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

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

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

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...