Redis的这些都没有掌握,你还想要拿Offer?

2023-11-08

Redis 简介

Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库

Redis 与 其他 key - value 缓存产品有以下三个特点:

  • Redis 支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis 不仅仅支持简单的 key - value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。
  • Redis 支持数据的备份,即 master - slave 模式的数据备份。

Redis 优势

  • 性能极高 – Redis 读的速度是 110000 次 /s, 写的速度是 81000 次 /s 。
  • 丰富的数据类型 - Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets数据类型操作。
  • 原子性 - Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。
  • 其他特性 - Redis 还支持 publish/subscribe 通知,key 过期等特性。

Redis 数据类型

Redis 支持 5 中数据类型:string(字符串),hash(哈希),list(列表),set(集合),zset(sorted set:有序集合)。

string
string 是 redis 最基本的数据类型。一个 key 对应一个 value。

string 是二进制安全的。也就是说 redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。

string 类型是 redis 最基本的数据类型,string 类型的值最大能存储 512 MB。

理解:string 就像是 java 中的 map 一样,一个 key 对应一个 value
在这里插入图片描述

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"

hash
Redis hash 是一个键值对(key - value)集合。

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

理解:可以将 hash 看成一个 key - value 的集合。也可以将其想成一个 hash 对应着多个 string。
与 string 区别:string 是 一个 key - value 键值对,而 hash 是多个 key - value 键值对。

在这里插入图片描述

// hash-key 可以看成是一个键值对集合的名字,在这里分别为其添加了 sub-key1 : value1、
sub-key2 : value2、sub-key3 : value3 这三个键值对
127.0.0.1:6379> hset hash-key sub-key1 value1 
(integer) 1
127.0.0.1:6379> hset hash-key sub-key2 value2
(integer) 1
127.0.0.1:6379> hset hash-key sub-key3 value3
(integer) 1
// 获取 hash-key 这个 hash 里面的所有键值对
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value2"
5) "sub-key3"
6) "value3"
// 删除 hash-key 这个 hash 里面的 sub-key2 键值对
127.0.0.1:6379> hdel hash-key sub-key2
(integer) 1
127.0.0.1:6379> hget hash-key sub-key2
(nil)
127.0.0.1:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis的这些都没有掌握,你还想要拿Offer? 的相关文章

  • Redis Docker compose无法处理RDB格式版本10

    我无法在 docker compose 文件中启动 redis 容器 我知道docker compose文件没问题 因为我的同事可以成功启动项目 我读到有一个删除 dump rdb 文件的解决方案 但我找不到它 我使用Windows机器 任
  • 有没有办法在 ruby​​ 中重新定义 []=+

    我正在尝试编写一个简单的 DSL 针对 Redis 并且我想自己定义 I have def key val redis zadd name val key end 我想定义 def key val redis zincrby name va
  • 如何在Redis中进行持久化存储?

    关闭redis服务器后 使用set存储的值被破坏 在这里我找到了使用持久性存储的方法 有人帮助我 如何使用javascript实现这一点 我想将客户端的一些值存储在 redis 数据库中 并且必须在其他客户端中使用该值 您需要配置 Redi
  • Redis发布/订阅:查看当前订阅了哪些频道

    我目前有兴趣查看我拥有的 Redis 发布 订阅应用程序中订阅了哪些频道 当客户端连接到我们的服务器时 我们将它们注册到如下所示的通道 user user id 这样做的原因是我希望能够看到谁 在线 目前 我在不知道客户端是否在线的情况下盲
  • 使用 Sentinels 升级 Redis 的最佳实践?

    我有 3 个 Redis 节点 由 3 个哨兵监视 我进行了搜索 文档似乎不清楚如何最好地升级此类配置 我目前使用的是 3 0 6 版本 我想升级到最新的 5 0 5 我对这方面的程序有几个疑问 升级两个大版本可以吗 我在我们的暂存环境中执
  • 为什么 Redis TimeSeries 不捕获聚合中的最后一个元素?

    我试图了解 Redis 的时间序列规则创建的工作原理 但我很困惑为什么 Redis 会忽略聚合中的最后一项 并想知道这是否是预期的行为 我在中创建了示例代码redis cli为了显示 127 0 0 1 6379 gt FLUSHALL O
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • 如何使 Redis 缓存中数据层次结构(树)的部分内容无效

    我有一些产品数据 需要在 Redis 缓存中存储多个版本 数据由 JSON 序列化对象组成 获取普通 基本 数据的过程很昂贵 将其定制为不同版本的过程也很昂贵 因此我想缓存所有版本以尽可能进行优化 数据结构看起来像这样 BaseProduc
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • 想要在后台不间断地运行redis-server

    我已经下载了 redis 2 6 16 tar gz 文件并安装成功 安装后我运行 src redis server 它工作正常 但我不想每次都手动运行 src redis server 而是希望 redis server 作为后台进程持续
  • Laravel 异常队列最大尝试次数超出

    我创建了一个应用程序来向多个用户发送电子邮件 但在处理大量收件人时遇到问题 该错误出现在failed jobs table Illuminate Queue MaxAttemptsExceededException App Jobs ESe
  • 如何使用 Redis 自动删除与模式匹配的键

    在我的 Redis DB 中 我有很多prefix
  • 节点应用程序之间共享会话?

    我目前有两个独立的节点应用程序在两个不同的端口上运行 但共享相同的后端数据存储 我需要在两个应用程序之间共享用户会话 以便当用户通过一个应用程序登录时 他们的会话可用 并且他们似乎已登录到另一个应用程序 在本例中 它是一个面向公众的网站和一
  • 超出 Redis 连接/缓冲区大小限制

    在对我们的应用程序服务器进行压力测试时 我们从 Redis 中得到以下异常 ServiceStack Redis RedisException 无法连接到 redis host 6379 处的 redis 实例 gt System Net
  • Redis 在键过期时更新排序集

    我有一个 Redis 服务器 其中包含一组键值对和一个排序集 提供这些键值对的键的索引 键值对可以进入 已完成 状态 此时需要在 1 小时后删除它们 这可以通过在键上设置到期时间来简单地实现 但从排序集中清除它们似乎更成问题 我可以有一个过
  • Web API 缓存 - 如何使用分布式缓存实现失效

    我有一个 API 目前不使用任何缓存 我确实有一个正在使用的中间件 它可以生成缓存标头 Cache Control Expires ETag Last Modified 使用https github com KevinDockx HttpC
  • .NET Core 依赖注入中的“StackExchange.Redis.ConnectionMultiplexer”应该是“AddSingleton”还是“AddScope”?

    我正在使用以下命令将 Redis 连接添加到 NET CoreStackExchange Redis 目前看起来像这样 public static IServiceCollection AddRedisMultiplexer this IS
  • 在 Redis 中存储 IP 范围

    我有很多不同提供商的 IP 范围 例如 P1 192 168 1 10 192 168 1 50 192 168 2 16 192 168 2 49 P2 17 36 15 34 17 36 15 255 P3 我将此 IP 转换为 int
  • Redis - 错误:值不是有效的浮点数

    我在 Redis 中有一个排序集 我试图通过在Python代码中使用zincrby来更新特定元素的计数器值 例如 conn zincrby usersSet float 1 user1 但它显示错误为 错误 值不是有效的浮点数 我在 cli
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso

随机推荐

  • Qt浅谈之四十六QemuQuestAgent的应用

    一 简介 qemu ga是在虚拟机中安装的一个agent 宿主机host通过通道 unix socket 与虚拟机vm内部的agent进行通信 这样宿主机就有了一种从外部控制 获取虚拟机的手段 比如 host可以向vm下发执行修改hostn
  • RabbitMQ-延迟队列

    文章目录 前言 什么是延迟队列 实现延迟队列 使用RabbitMQ实现延迟队列 步骤1 创建RabbitMQ连接和通道 步骤2 创建延迟队列和死信队列 步骤3 发送延迟消息 死信队列 前言 随着现代应用程序对消息队列的需求不断增长 延迟队列
  • 小程序开发:Component “pages/index/index“ does not have a method “onGetOpenid(p)“ to handle event “tap“

    小程序的坑又来啦 当我们在js里面很快乐的写了一个带参数的方法 然后在页面上使用bindtap去调用时 就像我这样 不要吐槽 我是测试代码 然后就会愉快的发现 嗯 怎么解决呢 去掉括号和参数 加一个date 问号1代表你接受参数的名称 问号
  • 读spring in action spring 之旅

    spring bean 的作用域 Spring定义了多种作用域 可以基于这些作用域创建bean 包括 单例 Singleton 在整个应用中 只创建bean的一个实例 原型 Prototype 每次注入或者通过Spring应用上下文获取的时
  • 【CV夏令营】学习笔记01:跑通机器学习版本baseline

    0 学习背景 有幸参与了DataWhale的AI视觉夏令营 沉浸式全流程体验AI比赛 比赛题目是 脑PET图像分析和疾病预测挑战赛 这里给出链接 https challenge xfyun cn topic info type pet 20
  • 快速找到某台电脑上tomcat的安装路径

    所有程序 gt Apache Tomcat 7 0 Tomcat7 gt Tomcat 7 0 Program Directory 即可 当然前提是他的是window安装版
  • 【人生第一份offer~】北京京东科技 日常实习一面二面(已OC) 21/12/22&23

    北京京东科技 日常实习一面 21 12 22 体验极佳的一次面试 面试官大大贼温柔 循循善诱地帮助我把问题捋出来 另外问题也都对我这个初学者很友好 超级简单哈哈哈 面试完半个小时二面电话就来了 约到了明天上午十一点 聊项目 说下你在这个大型
  • tinymce变化后onchange光标变化问题(React)

    关于tinymce富文内容变化后 光标会自动跳到最前面的问题 比如回车 复制粘贴 都会跳到最前面 由于我是ant design pro包了一层 它给分配的value和onchange 不用的话 确实也不会有这问题 但那样form提交表单时
  • Git配置credential helper,并使用Http/Https传输

    现实场景 在使用Git进行开发的时候 我们可以使用ssh url或者http url来进行源码的clone push pull 二者的区别是 使用ssh url需要在本地配置ssh key 这也就意味着你必须是开发者或者有一定的权限 每次的
  • 这些错误你都犯过吗?来看看9大XMind初学者常见错误!

    当我们在思考一个事件时 我们往往会将自己的想法通过思维导图的方式展现出来 XMind就是一款强大的思维导图和头脑风暴工具 数十年来一直是百万用户的首选 gt gt 点击下载Mind ZEN试用版 lt lt 对于初学者来说 常常会犯一些固有
  • TypeC规范--CC连接

    上次在TypeC与PD快充文章内我们在后面放了几张图 如下图 上图位于TypeC规范章节4 5 1 3 3 我们以这个图为例介绍一下 我们可以看到在VBus上会有MOS去切换source和sink的通路 这个是DRP在VBUS上的特点 我们
  • Entity Framework Core系列教程-26-数据迁移

    Entity Framework Core数据迁移 迁移是一种通过保留数据来使数据库架构与EF Core模型保持同步的方法 如上图所示 EF Core API从域 实体 类构建EF Core模型 并且EF Core迁移将基于EF Core模
  • Ubuntu获取串口权限使用CAN分析仪

    Ubuntu获取串口权限使用CAN分析仪 通过以下命令获取usb设备信息 lsusb 可以得到以下信息 Bus 002 Device 001 ID 1d6b 0003 Linux Foundation 3 0 root hub Bus 00
  • Linux Maven-v3.8.6的安装与配置

    Maven v3 8 6的安装与配置 官网下载页地址 maven依赖jdk环境 且需要 jdk1 7 以上版本 安装之前需要先配置好 JAVA HOME 的环境变量 有需要可以看之前的 JDK 11的安装与环境变量配置 1 下载 解压 wg
  • 2023华为OD机试真题【查找单入口空闲区域/回溯法】

    题目描述 给定一个 m xn 的矩阵 由若干字符 和0构成 X表示该处已被占据 0 表示该处空闲 请找到最大的单入口空闲区域 解释 空闲区域是由连通的O组成的区域 位于边界的0可以构成入口 单入口空闲区域即有目只有一个位于边界的0作为入口的
  • 教你从零开始搭建私有网盘及个人博客(云服务器基础使用教程)

    云服务器选择 首先 你必须购买一个的服务器 不过你可以到阿里云的 高校学生 在家实践 计划 http suo im 5sMWSq 中免费领取6个月的云服务器先试试手 选配服务器和选配个人电脑差不多 所以配置方面不多提 我们直接看到 镜像 选
  • Threejs加载OBJ模型

    threejs加载OBJ模型代码
  • 2014年6月23日-6月29日(共11小时,剩4424小时)

    6月23日 上午有事 下午1小时 剩4438小时 6月24日 3小时 剩4435小时 6月25日 5小时 剩4430小时 6月26日 1小时 剩4429小时 6月27日 3小时 剩4426小时 6月29日 2小时 剩4424小时
  • 论文笔记:When Do Contrastive Learning Signals Help Spatio-TemporalGraph Forecasting?

    2022 SigSpatial 1 intro 1 1 背景 论文认为数据稀缺是阻碍时空图 STG 预测的一个关键问题 在这一领域的公共数据集通常只包含几个月的数据 限制了可以构建的训练实例数量 gt 学习模型可能会对训练数据过拟合 导致泛
  • Redis的这些都没有掌握,你还想要拿Offer?

    Redis 简介 Redis 是完全开源免费的 遵守 BSD 协议 是一个高性能的 key value 数据库 Redis 与 其他 key value 缓存产品有以下三个特点 Redis 支持数据持久化 可以将内存中的数据保存在磁盘中 重