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: 值返回默认设置的信息

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

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

相关文章

BTC网络 vs ETH网络

设计理念 BTC 网络 比特币是一种数字货币,旨在作为一种去中心化的、不受政府或金融机构控制的电子货币。其主要目标是实现安全的价值传输和储存,比特币的设计强调去中心化和抗审查。 ETH 网络 以太坊是一个智能合约平台,旨在支持分散的应…

Windows系统x86机器安装(麒麟、统信)ARM系统详细教程

本次介绍在window系统x86机器上安装国产系统 arm 系统的详细教程。 注:ubuntu 的arm系统安装是一样的流程。 1.安装环境准备。 首先,你得有台电脑,配置别太差,至少4核8G内存,安装window10或者11都行(为啥…

抖音视频评论批量下载软件|抖音数据抓取工具

随着业务需求的增长,抖音视频的下载需求也日益增加。传统的方式是通过逐个复制粘贴分享链接来下载视频,这种操作效率低下且耗时费力。为了解决这一问题,我们开发了一款基于C#的抖音视频评论批量下载软件,旨在实现通过关键词自动批…

Web服务器群集:OpenEuler 部署 LAMP(LNMP) 基础服务

目录 一、实验 1.环境 2. 网络配置 3. MobaXterm远程连接 4. apache 2.4.58 源码编译安装 5. php 8.3.1源码编译安装 6.配置httpd 连接 php-fpm 6. nginx 1.24.0源码编译安装 7. mysql 8.0.36安装 二、问题 1.MobaXterm设置右键复制粘贴 2.OpenEuler如何查看CPU的核…

Android 使用NanoHTTPD 架设 Http Server + 客户端App 发送请求示例(含上传图片示例)

NanoHTTPD 简介 使用该 lib,可以在 Android 设备上,架设 Http Server。客户端(Client) App,请求 http://[serverIp]:[server端口]/… 访问服务。适用于,局域网内多安卓设备(一台作为服务器,其它作为客户端)间通信。 https://github.com/NanoHttpd/nanohttpd 依赖:imple…

Linux内核模块签名与版本检查机制

内核模块签名机制 linux内核从3.7 开始加入模块签名检查机制, 校验签名是否与已编译的内核公钥匹配。目前只支持RSA X.509验证, 模块签名验证并非强制使用, 可在编译内核时配置是否开启。 CONFIG_MODULE_SIG: Module signature verification 开启该选项后,内核加载该模块…

npm install报错,常见的解决方案

当在使用 npm install 命令时遇到错误时,可以尝试以下一些常见的解决方案: 清除 npm 缓存: 运行以下命令清除 npm 缓存: npm cache clean --force更新 npm: 确保你正在使用最新版本的 npm。可以运行以下命令更新 npm&a…

使用Node.js开发一个文件上传功能

在现代 Web 应用程序开发中,文件上传是一个非常常见且重要的功能。今天我们将通过 Node.js 来开发一个简单而强大的文件上传功能。使用 Node.js 来处理文件上传可以带来许多好处,包括简单的代码实现、高效的性能和灵活的配置选项。 首先,我们…

【kubernetes】关于k8s集群的资源发布方式(灰度/滚动发布)

目录 一、常见的发布方式 二、详解kubectl陈述式方式做灰度发布(金丝雀发布) 步骤一:先基于deployment控制器创建pod,然后发布 步骤二:基于命令行灰度发布 步骤三:测试等到版本稳定以后,再完…

2月21日,每日信息差

🎖 素材来源官方媒体/网络新闻 🎄 10 家央企签订倡议书:将主动向社会开放人工智能应用场景 🌍 上海成为首个固定资产投资破万亿的一线城市 🌋 特斯拉扩建德国工厂的计划遭当地居民反对 🎁 加拿大公司利用木…

72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle)

72_Pandas.DataFrame保存并读取带pickle的系列(to_pickle、read_pickle) 要将 pandas.DataFrame、pandas.Series 对象保存为 pickle 文件,请使用 to_pickle() 方法,并使用 pd.read_pickle() 函数读取保存的 pickle 文件。 在此对…

远程解难:苹果手机投屏到Windows电脑,给爸妈演示手机操作

明窗净几夜未央, 键盘轻敲解忧忙。 父母笑颜消难题, 孝心科技共光芒。 QQ、微信、小红书等社交软件不仅年轻人在用,老年人也逐步使用社交软件建立起自己的朋友圈。但这些“新”软件对于部分老年人来说还是太复杂,这就难免需要年…

Mysql常见用法(2)

目录​​​​​​​ mysql 约束 primary key 主键的基本使用 notnull(非空) unique(唯一) foreign key(外键) check 自增长 mysql索引 索引的原理 索引的类型 索引的使用 --添加索引 删除索引: -- 修改索引 , 先删除,在添加新…

vue前端密码加密,springboot后端密码解密

1.模块安装 1 npm install crypto-js 2.src–>util–>secret.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 import CryptoJS from crypto-js // 默认的 KEY …

liunx单机项目部署

文章目录 1.liunx简介2.liunx的jdk安装2.liunx的tomcat安装3.liunx的mysql安装4.单机项目部署 1.liunx简介 Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费…

【C语言】学生宿舍信息管理系统

目录 项目说明 1. 数据结构设计 2. 功能实现 3. 主菜单设计 4. 文件操作 5. 系统使用 项目展示 1.主菜单功能界面 ​编辑 2.添加信息 3.查询信息 4.修改信息 5.删除信息 6.退出程序 项目完整代码 结语 在这篇博客中,我们将探讨如何使用C语言来开发…

【Hudi】核心概念

https://www.bilibili.com/video/BV1ue4y1i7na?p17&vd_sourcefa36a95b3c3fa4f32dd400f8cabddeaf 大数据新风口:Hudi数据湖(尚硅谷&Apache Hudi联合出品) 1 基础概念 1.1 时间轴(TimeLine) 1.2 文件布局(File Layout) 1.3 索引(In…

JavaWeb个人学习01

1:RequestParam(defaultValue "默认的值") 这个可以在一个参数的前面写上 要是前端不传值进来的话 这个形参就是你定义的默认值 2: slf4j 对应的是日志的输出 log.info("参数是 {}", detail); 3: 分页插件 PageHelper 用法: 准备工作: 引入依赖 …

【OpenCV C++】Mat img.total() 和img.cols * img.rows 意思一样吗?二者完全相等吗?

文章目录 1 结论及区别2 Mat img的属性 介绍1 结论及区别 在大多数情况下,img.total() 和 img.cols * img.rows 是相等的,但并不总是完全相等的。下面是它们的含义和一些区别: 1.img.total() 表示图像中像素的总数,即图像的总像素数量。2.img.cols * img.rows 也表示图像中…

React UI框架Antd 以及 如何按需引入css样式配置(以及过程中各种错误处理方案)

一、react UI框架Antd使用 1.下载模块 npm install antd -S 2.引入antd的样式 import ../node_modules/antd/dist/reset.css; 3.局部使用antd组件 import {Button, Calendar} from antd; import {PieChartTwoTone} from ant-design/icons; {/* 组件汉化配置 */} import l…