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

Redis 九种数据类型的基本操作

一、redis9种数据类型的基本操作
①key操作

#查找所有的key
127.0.0.1:6379> keys *
1) "pop"
2) "mylist"
3) "lpl"
4) "myset"
#设置key的过期时间 返回1表示执行成功,0表示失败,出现问题
127.0.0.1:6379> expire pop 30
(integer) 1
#ttl key 查看key过期倒计时
127.0.0.1:6379> ttl pop
(integer) 10
127.0.0.1:6379> ttl pop
(integer) 1
127.0.0.1:6379> ttl pop
(integer) -2
#查看是否存在key:exists key,返回0表示不存在
127.0.0.1:6379> exists pop
(integer) 0
#del key:删除key
127.0.0.1:6379> del lpl
(integer) 1
127.0.0.1:6379> keys *
1) "mylist"
2) "myset"
#rename key 表示修改key的名称

②String类型
(1)Redis 最基本的数据类型,String 类型的值最大能存储 512MB。
(2)string类型是二进制, redis 的 string 可以包含任何数据,一个 key 对应一个 value。

#set key value 创建key并赋值
127.0.0.1:6379> set pop qwe
OK
#get key  获取key的对应值
127.0.0.1:6379> get pop
"qwe"

③list类型
Redis列表是简单的字符串列表,按照插入顺序排序。一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

#lpush key element 表示从key左边开始插入一个或多个值
127.0.0.1:6379> lpush lpl 1 2 3 4
(integer) 4
# lrange  key start stop 表示列表的范围从start的位置到stop的位置
127.0.0.1:6379> lrange lpl 1 3
1) "3"
2) "2"
3) "1"
#从rpush key element  从key右边插入
127.0.0.1:6379> rpush lpl 6 7 8
(integer) 7
#lrange key 0 -1  查看列表全部的值
127.0.0.1:6379> lrange lpl 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "6"
6) "7"
7) "8"
#rpop key 移除列表的最后一个元素,返回值为移除的元素
127.0.0.1:6379> rpop lpl
"8"
127.0.0.1:6379> lrange lpl 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "6"
6) "7"
#lpop key  移出并获取列表的第一个元素
127.0.0.1:6379> lpop lpl
"4"
127.0.0.1:6379> lrange lpl 0 -1
1) "3"
2) "2"
3) "1"
4) "6"
5) "7"

④Set类型
Redis 的 Set 是 String 类型的无序集合。集合中成员是唯一的,不能出现重复的数据。

tips:Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

# sadd key member [member ...] 添加集合的元素
127.0.0.1:6379> sadd course redis mongodb mysql
(integer) 3
#scard key 获取集合中的成员数
127.0.0.1:6379> scard course
(integer) 3
#smembers key 返回集合中的所有成员
127.0.0.1:6379> smembers course
1) "redis"
2) "mongodb"
3) "mysql"

⑤Zset
Redis 有序集合和集合一样也是string类型元素的集合且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。

#zadd key score member 向有序集合添加一个或多个成员,或者更新已存在成员的分数
127.0.0.1:6379> zadd courses 1 redis
(integer) 1
#zrevrank key 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
127.0.0.1:6379> zrevrank courses mongodb
(integer) 3
#zrange key start stop withscores通过索引区间返回有序集合指定区间内的成员
127.0.0.1:6379> zrange courses 0 10 withscores1) "redis"2) "1"3) "mongodb"4) "2"5) "sqlserver"6) "68"7) "oracle"8) "77"9) "mysql"
10) "99"

⑥Hash
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

#hmset key field value [field value ...]  将哈希表 key 中的字段 field 的值设为 value
127.0.0.1:6379> hmset new name "zhangsan" age 18 gender "F" birth 2000-01-01OK
#hgetall key 获取在哈希表中指定 key 的所有字段和值
127.0.0.1:6379> hgetall new
1) "name"
2) "zhangsan"
3) "age"
4) "18"
5) "gender"
6) "F"
7) "birth"
8) "2000-01-01"

⑦Bitmaps
1)Bitmaps本身不是一种数据类型,实际上它就是字符串(key-value),但是它可以对字符串的位进行操作。

2)Bitmaps单独提供了一套命令,所以在Redis中使用Bitmaps和使用字符串的方法不太相同。 可以把Bitmaps想象成一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量。

#setbit key offset value 设置Bitmaps中某个偏移量的值(0或1),offset偏移量从0开始。模拟工作日打卡场景

在这里插入图片描述

# bitcount key [start end [BYTE|BIT]] 用于统计字符串从start字节到end字节比特值为1的数量
127.0.0.1:6379> bitcount user:01
(integer) 3
#getbit key offset 获取键的第offset位的值(从0开始算)
127.0.0.1:6379> getbit user:01 5
(integer) 1

⑧HyperLogLog
优点:
(1)能够降低一定的精度来平衡存储空间
(2)在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。
(3)在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。
缺点:
由于HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

#pfadd key [element [element ...]] 添加指定元素到 HyperLogLog 中
127.0.0.1:6379> pfadd test "redis"
(integer) 1
127.0.0.1:6379> pfadd test "mongodb"
(integer) 1
127.0.0.1:6379> pfadd test "mysql"
(integer) 1#pfcount key [key ...] 返回给定 HyperLogLog 的基数估算值
127.0.0.1:6379> pfcount test
(integer) 3
127.0.0.1:6379> pfadd test1 "sqlserver"
(integer) 1#pfmerge destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog
127.0.0.1:6379> pfmerge test test1
OK
127.0.0.1:6379> pfcount test
(integer) 

⑨Geospatial
GEO类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作。

# geoadd key longitude  latitude   member [longitude latitude member...] 添加地理位置(经度,纬度,名称)
127.0.0.1:6379> geoadd location 127.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd location 106.50 29.53 chongqing
(integer) 1#geopos  key  member  [member...] 获得指定地区的坐标值
127.0.0.1:6379> geopos location shanghai
1) 1) "127.47000128030776978"2) "31.22999903975783553"#geodist  key  member1  member2 [m\|km\|ft\|mi] 获取两个位置之间的直线距离
127.0.0.1:6379> geodist location shanghai chongqing km
"2017.9802"#georadius  key   longitude  latitude  radius  [m\|km\|ft\|mi]  以给定的经纬度为中心,找出某一半径内的元素
127.0.0.1:6379> georadius location 110 30 1000 km
1) "chongqing"

相关文章:

Redis 九种数据类型的基本操作

一、redis9种数据类型的基本操作 ①key操作 #查找所有的key 127.0.0.1:6379> keys * 1) "pop" 2) "mylist" 3) "lpl" 4) "myset" #设置key的过期时间 返回1表示执行成功,0表示失败,出现问题 127.0.0.1:6379…...

爬取微博热搜榜并进行数据分析

设计方案 爬虫爬取的内容 :爬取微博热搜榜数据。 网络爬虫设计方案概述 用requests库访问页面用get方法获取页面资源,登录页面对页面HTML进行分析,用beautifulsoup库获取并提取自己所需要的信息。再讲数据保存到CSV文件中,进行…...

基于深度神经网络的肺炎检测系统实现

一、说在前面 使用AI进行新冠肺炎图像诊断可以加快病例的诊断速度,提高诊断的准确性,并在大规模筛查中发挥重要作用,从而更好地控制和管理这一流行病。然而,需要强调的是,AI技术仅作为辅助手段,最终的诊断决…...

C# LINQ和Lambda表达式对照

C# LINQ和Lambda表达式对照 1. 基本查询语句 Linq语法: var datafrom a in db.Areas select a ; Lamda语法: var datadb.Areas; sql语法: SELECT * FROM Areas2. 简单的WHERE语句 Linq语法: var datafrom a in db.orderI…...

二、SQL-6.DCL-1).用户管理

一、DCL介绍 Data Control Language 数据控制语言 用来管理数据库 用户、控制数据库的 访问权限。 二、语法 1、管理用户 管理用户在系统数据库mysql中的user表中创建、删除一个用户,需要Host(主机名)和User(用户名&#xff0…...

ElasticSearch学习--数据聚合

介绍 数据聚合可以帮助我们对海量的数据进行统计分析,如果结合kibana,我们还能形成可视化的图形报表。自动补全可以根据用户输入的部分关键字去自动补全和提示。数据同步可以帮助我们解决es和mysql的数据一致性问题。集群可以帮助我们了解结构和不同节点…...

PostMan+Jmeter工具介绍及安装

目录 一、PostMan介绍​编辑 二、下载安装 三、Postman与Jmeter的区别 一、开发语言区别: 二、使用范围区别: 三、使用区别: 四、Jmeter安装 附一个详细的Jmeter按照新手使用教程,感谢作者,亲测有效。 五、Jme…...

AutoSAR系列讲解(实践篇)7.4-实验:配置SWCRTE

注意: 实验篇是重点,有条件的同学最好跟着做一遍,然后回头对照着7.1-7.3理解其配置的目的和意义。实验下篇将在7.7节中继续做 一、实验概览 1、实验目的 通过本次实验,主要是让大家对Dev的配置有一个全流程的学习。这里会用到前两节的内容,将其串联起来,让大家能完整的…...

腾讯云内存型CVM服务器MA3、M6、M6ce和M5处理器CPU说明

腾讯云内存型CVM服务器CPU处理器大全,CVM内存型MA3、内存型M6、安全增强内存型M6ce、内存型M6p、内存型M5、MA2、M4、M3、M2、M1处理器主频、CPU性能性能大全说明,腾讯云内存型云服务器具有大内存的特点,适合高性能数据库、分布式内存缓存等需…...

集睿致远推出CS5466多功能拓展坞方案:支持DP1.4、HDMI2.1视频8K输出

ASL新推出的 CS5466是一款Type-C/DP1.4转HDMI2.1的显示协议转换芯片,,它通过类型C/显示端口链路接收视频和音 频流,并转换为支持TMDS或FRL输出信令。DP接收器支持81.Gbp s链路速率。HDMI输出端口可以作为TMDS或FRL发射机工作。FRL发射机符合HDMI 2.1规范…...

SQL中为何时常见到 where 1=1?

你是否曾在 SELECT 查询中看到过 WHERE 11 条件。我在许多不同的查询和许多 SQL 引擎中都有看过。这条件显然意味着 WHERE TRUE,所以它只是返回与没有 WHERE 子句时相同的查询结果。此外,由于查询优化器几乎肯定会删除它,因此对查询执行时间没…...

React AntDesign表批量操作时的selectedRowKeys回显选中

不知道大家是不是在AntDesign的某一个列表想要做一个批量导出或者操作的时候,发现只要选择下一页,即使选中的ids 都有记录下面,但是就是不回显 后来问了chatGPT,对方的回答是: 在Ant Design的DataTable组件中&#xf…...

anydesk远程控制,主动连接。

目标 远程控制目标电脑,且无需对方同意,并且可以控制目标电脑开关机。 实现 目标电脑和己方电脑均安装anydesk。目标电脑取消开机密码。打开目标电脑的anydesk在设置安全设置中打开为自主访问设置密码。 额外设置 为了让笔记本电脑合盖后仍能被控制…...

Spring Data Redis操作Redis

在Spring Boot项目中&#xff0c;可以使用Spring Data Redis来简化Redis操作&#xff0c;maven的依赖坐标&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></…...

sqlite触发器1

SQLite 的触发器&#xff08;Trigger&#xff09;可以指定在特定的数据库表发生 DELETE、INSERT 或 UPDATE 时触发&#xff0c;或在一个或多个指定表的列发生更新时触发。 SQLite 只支持 FOR EACH ROW 触发器&#xff08;Trigger&#xff09;&#xff0c;没有 FOR EACH STATEM…...

python中——requests爬虫【中文乱码】的3种解决方法

requests是一个较为简单易用的HTTP请求库&#xff0c;是python中编写爬虫程序最基础常用的一个库。 而【中文乱码】问题&#xff0c;是最常遇到的问题&#xff0c;对于初学者来说&#xff0c;是很困恼的。 本文将详细说明&#xff0c;python中使用requests库编写爬虫程序时&…...

E. Nastya and Potions(DFS+记忆化搜索)

炼金术士纳斯蒂亚喜欢混合药剂。一共有n种药剂&#xff0c;ci硬币可以买到一种 i 型药剂。 任何一种药剂都只能通过一种方式获得&#xff0c;即混合其他几种药剂。混合过程中使用的药剂将被消耗掉。此外&#xff0c;任何药剂都不能通过一个或多个混合过程从自身获得。 作为一名…...

什么是tcp rst以及什么时候产生?

rst包是仅在header control bits设置rst的空payload包&#xff0c;用于强制关闭tcp连接。常在以下场景发送 远程主机没有监听该端口 远程主机强迫关闭了一个现有连接。比如服务端进程崩溃后重启会向之前连接发送rst 相比于四次挥手的fin&#xff0c;rst是在异常情况下的无条…...

Visual Studio Code配置免密远程开发环境

VSCode安装插件 要是想连接远程服务器&#xff0c;先在本地安装下面的插件&#xff08;红色圈起来的需要装&#xff09; 连接远程服务器 配置服务器信息 保存然后再连接&#xff0c;输入密码&#xff0c;如果能连接上说明是没问题的&#xff0c;下面开始免密登录 免密配置 客…...

flutter android Webview 打开网页错误ERR_CLEARTEXT_NOT_PERMITTED 、 net:ERR_CACHE_MISS

当你在Flutter应用中尝试打开一个非安全连接的网页&#xff08;例如HTTP连接而不是HTTPS连接&#xff09;时&#xff0c;可能会遇到"ERR_CLEARTEXT_NOT_PERMITTED"错误。这是因为默认情况下&#xff0c;Android 9及更高版本禁止应用程序通过非安全的明文HTTP连接进行…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

Spring Boot + MyBatis 集成支付宝支付流程

Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例&#xff08;电脑网站支付&#xff09; 1. 添加依赖 <!…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

2025-05-08-deepseek本地化部署

title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek&#xff1a;小白也能轻松搞定&#xff01; 如何给本地部署的 DeepSeek 投喂数据&#xff0c;让他更懂你 [实验目的]&#xff1a;理解系统架构与原…...