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(用户名࿰…...
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组件中…...
anydesk远程控制,主动连接。
目标 远程控制目标电脑,且无需对方同意,并且可以控制目标电脑开关机。 实现 目标电脑和己方电脑均安装anydesk。目标电脑取消开机密码。打开目标电脑的anydesk在设置安全设置中打开为自主访问设置密码。 额外设置 为了让笔记本电脑合盖后仍能被控制…...
Spring Data Redis操作Redis
在Spring Boot项目中,可以使用Spring Data Redis来简化Redis操作,maven的依赖坐标: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></…...
sqlite触发器1
SQLite 的触发器(Trigger)可以指定在特定的数据库表发生 DELETE、INSERT 或 UPDATE 时触发,或在一个或多个指定表的列发生更新时触发。 SQLite 只支持 FOR EACH ROW 触发器(Trigger),没有 FOR EACH STATEM…...
python中——requests爬虫【中文乱码】的3种解决方法
requests是一个较为简单易用的HTTP请求库,是python中编写爬虫程序最基础常用的一个库。 而【中文乱码】问题,是最常遇到的问题,对于初学者来说,是很困恼的。 本文将详细说明,python中使用requests库编写爬虫程序时&…...
E. Nastya and Potions(DFS+记忆化搜索)
炼金术士纳斯蒂亚喜欢混合药剂。一共有n种药剂,ci硬币可以买到一种 i 型药剂。 任何一种药剂都只能通过一种方式获得,即混合其他几种药剂。混合过程中使用的药剂将被消耗掉。此外,任何药剂都不能通过一个或多个混合过程从自身获得。 作为一名…...
什么是tcp rst以及什么时候产生?
rst包是仅在header control bits设置rst的空payload包,用于强制关闭tcp连接。常在以下场景发送 远程主机没有监听该端口 远程主机强迫关闭了一个现有连接。比如服务端进程崩溃后重启会向之前连接发送rst 相比于四次挥手的fin,rst是在异常情况下的无条…...
Visual Studio Code配置免密远程开发环境
VSCode安装插件 要是想连接远程服务器,先在本地安装下面的插件(红色圈起来的需要装) 连接远程服务器 配置服务器信息 保存然后再连接,输入密码,如果能连接上说明是没问题的,下面开始免密登录 免密配置 客…...
flutter android Webview 打开网页错误ERR_CLEARTEXT_NOT_PERMITTED 、 net:ERR_CACHE_MISS
当你在Flutter应用中尝试打开一个非安全连接的网页(例如HTTP连接而不是HTTPS连接)时,可能会遇到"ERR_CLEARTEXT_NOT_PERMITTED"错误。这是因为默认情况下,Android 9及更高版本禁止应用程序通过非安全的明文HTTP连接进行…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
