Redis基础

2023-11-12

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与其他key-value存储有什么不同?

  • Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
  • Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

redis怎么安装,我就不做介绍了,因为不同的系统安装方式不一样。如果不想安装话可以使用在线的redis环境。不过还是推荐一下,因为接下来会使用python去实现一些操作。其中redis数据库的可视化可以使用redis-desktop-manager。命令行操作使用redis-cli

接下来我将通过不同的数据结构来介绍redis的操作。

字符串(Strings)

字符串(Strings)是Redis的基本数据结构之一,由key和value组成。我们可以这样类比成编程语言的变量:keya代表变量名,value代表变量值。

查看所有的key的命令

keys *

创建字符串

set key value

如果value中有空格,则需要使用**""**将value包起来。如:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis基础 的相关文章

  • 节点应用程序之间共享会话?

    我目前有两个独立的节点应用程序在两个不同的端口上运行 但共享相同的后端数据存储 我需要在两个应用程序之间共享用户会话 以便当用户通过一个应用程序登录时 他们的会话可用 并且他们似乎已登录到另一个应用程序 在本例中 它是一个面向公众的网站和一
  • 通过updateTable创建多个GSI

    我在用着更新表 http docs aws amazon com AWSJavaScriptSDK latest AWS DynamoDB html updateTable property根据 DynmaoDB 的规定 根据文档 如果我们
  • 在 Spring 4 中干掉通用的 RedisTemplate

    我读到你可以拥有 Autowired从 Spring 4 开始泛型 这太棒了 我有一个摘要RedisService我想参加的课程 Autowired一个通用的 RestTemplate 如下所示 public abstract class
  • docker-compose:容器之间的 Redis 连接被拒绝

    我正在尝试设置一个 docker compose 文件 该文件旨在替换运行多个进程 RQ 工作线程 RQ 仪表板和 Flask 应用程序 的单个 Docker 容器解决方案导师 http supervisord org 主机系统是 Debi
  • Spring Data Redis 覆盖默认序列化器

    我正在尝试创建一个RedisTemplatebean 将具有更新的值序列化器来序列化对象JSONredis 中的格式 Configuration class RedisConfig Bean name redisTemplate Prima
  • CAP 定理 - 可用性和分区容错性

    当我尝试理解CAP中的 可用性 A 和 分区容错性 P 时 我发现很难理解各种文章的解释 我感觉A和P可以在一起 我知道事实并非如此 这就是为什么我无法理解 简单解释一下 A和P是什么以及它们之间的区别 一致性意味着整个集群中的数据是相同的
  • Redis 中存储整数和字符串的区别

    这两个命令有什么区别吗 LPUSH myset 123 LPUSH myset 123 我想存储大约 500 万个整数 并且我想以最有效的方式做到这一点 不 没有什么区别 两者都存储为字符串 从redis io http redis io
  • 集合成员的 TTL

    Redis 是否可以不为特定键而是为集合的成员设置 TTL 生存时间 我正在使用 Redis 文档提出的标签结构 数据是简单的键值对 标签是包含与每个标签对应的键的集合 例如 gt SETEX id id 1 100 Lorem ipsum
  • Cassandra 与 ZooKeeper 的事务 - 这有效吗?

    我正在尝试在 ZooKeeper 的帮助下为 Cassandra 实现一个事务系统 由于我认为我在数据库实现方面没有足够的经验 所以我想知道我的想法原则上是否可行 或者是否有任何重大缺陷 以下是步骤的高级描述 识别所有要编辑的行 键 和列
  • ServiceStack PooledRedisClientManager 故障转移如何工作?

    根据 git commit 消息 ServiceStack 最近添加了故障转移支持 我最初认为这意味着我可以关闭我的一个 Redis 实例 并且我的池客户端管理器将优雅地处理故障转移并尝试与我的备用 Redis 实例之一连接 不幸的是 我的
  • 为什么我们需要 Redis 来运行 CKAN?

    我想知道为什么我们需要 Redis 服务器来运行 CKAN 如果需要 为什么 我如何使用 CKAN 配置它 附注 我正在 RHEL7 中运行我的 ckan 实例 Update Redis 已成为一项要求从CKAN 2 7开始 https d
  • nginx/uwsgi 服务器的持久内存中 Python 对象

    我怀疑这是否可能 但这是问题和提出的解决方案 提出的解决方案的可行性是这个问题的对象 我有一些需要可用于所有请求的 全局数据 我将这些数据保存到 Riak 并使用 Redis 作为缓存层以提高访问速度 目前 数据被分为约 30 个逻辑块 每
  • 如何决定使用哪种NoSQL技术? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 MongoDB 基于文档 HBase 基于列 和 Neo4j 对象图 的优缺点是什么 我特别有兴趣了解
  • redis.exceptions.ConnectionError:连接到本地主机时出现错误-2:6379。名称或服务未知

    当我在服务器中运行代码时出现此错误 我的环境是 debian 并且Python2 7 3 Traceback most recent call last File fetcher py line 4 in
  • 为什么 NoSQL 比 RDBMS 更擅长“横向扩展”?

    我在a中读过以下文字技术博客 http tekedia com 12083 nosql database advantages and disadvantages 讨论NoSQL的优缺点 多年来 为了提高数据库服务器的性能 数据库管理员不得
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • 如何在 Spring-data 中更改/定义 Mongodb 的默认数据库?

    我有从 MongoRepository 扩展的接口 他们使用默认数据库 mongodb 我想定义类的数据库名称 public interface CustomerRepository extends MongoRepository
  • 有没有多核利用NoSQL系统?

    我从昨天开始就开始使用 MongoDB 并且非常喜欢它 我正在尝试导入大量数据 20 亿行 并为其建立索引 但它似乎没有使用我的系统拥有的 8 个核心 并且导入以正常速率 60000 条记录 秒 进行 我只能想象索引这个集合中的两列可能需要
  • 如何暂停或恢复 celery 任务?

    我的项目中有一项要求 客户可以暂停或恢复正在挂起的流程 而不是流程流程 我在用网络套接字显示芹菜任务结果 但在暂停 恢复时我不明白如何设计代码 我想到的唯一方法就是revoke暂停请求中的任务 同时保留数据撤销的过程在缓存中 并稍后在res
  • Flask-SocketIO redis 订阅

    我在用着https github com miguelgrinberg Flask SocketIO https github com miguelgrinberg Flask SocketIO实现 WebSocket 服务器 我需要从另一

随机推荐

  • QT 信号槽返回值

    一 方法 获取信号槽返回值的方法有三种 1 通过形参的方式 传递引用或者指针 未写例子 2 直接在信号发出位置获取返回值 下面有例子 3 通过QMetaObject invokeMethod方法 具体使用可以参考QT的帮助文档或者看下面的代
  • 【PyTorch】Chapter1:expected dtype Double but got dtype Float

    1 简介 最近跟着 Dive into DL PyTorch 一书的代码写 出现了double类型的数据和float类型的数据之间相互冲突的问题 有时需要double类型但输入的是float类型 有时又需要float类型却得到double类
  • java 码点与代码单元的区分 及 代码单元的数量和码点的数量

    java字符串由char值序列组成 char的数据类型是一个采用Unicode码点的代码单元 即 char数据类型是一个代码单元 任意Unicode字符都是一个码点 大多数常用的Unicode码点由一个char代码单元组成 辅助字符码点由两
  • c++ Unicode转UTF-8 & 宽字节转UTF8 & string转wstring & Utf8ToAnsi

    c 后台向网页传数据中文乱码 unicode的char字符串直接转UTF 8的char 网上找到有unicode转utf 8的代码 但是参数用的是wchar t的 不能直接用稍微改造一下 WideCharToMultiByte 函数需要Wi
  • Evidential Deep Learning for Open Set Action Recognition CVPR2021开放集识别论文解读

    5 Bao W Yu Q Kong Y Evidential Deep Learning for Open Set Action Recognition C Proceedings of the IEEE CVF International
  • 制作长方形表贴焊盘

    第一步 打开Pad Designer 第二步 点击File new 创建一个焊盘文件 第三步 修改小数点后几位 一般是三位 第四步 勾选Single layer 第五步 点击建构的框架 然后选择焊盘形状 Rectangle 矩形 然后填写宽
  • 4月24日云栖精选夜读

    点击订阅云栖夜读周刊 轻松筹首创了 大病救助 模式 帮助了众多病患在第一时间解決了医疗资金等问题 为了从源头解决了医疗资金问题 而在轻松筹这样全球5 5亿用户信赖的大病筹款平台的背后 是日益增长的各种数据 面对这样数据量所造成的巨大挑战 阿
  • 安装PyTorch-Lightning踩坑

    官网地址 PyTorch PyTorch Lightning 安装PyTorch Lightning 1 不能直接使用pip install pytorch lightning 否则如下图会直接卸载掉你的torch而安装cpu版本的torc
  • 这些有趣的AI人脸特效背后,腾讯云都做了什么?

    导语 深受泛娱乐场景喜爱的人脸特效产品 在不断的尝试和拓展中已挖掘出很多火爆的玩法及积累了不少优秀落地案例 本文是对腾讯云高级工程师 李凯斌老师在 云加社区沙龙online 的分享整理 以人脸特效产品 人脸融合 人脸试妆包括试唇色和美颜 人
  • 后代,后裔 descendant offspring posterity progeny

    后代 后裔 descendant offspring posterity progeny 后代 后裔 descendant offspring posterity progeny posterity descendant 和 offspri
  • xp能ping通kali,而kali却ping不了winxp的解决方案

    今天天气不错 手机响了 学妹向我提问了一个问题 她的win xp能ping通linux kali 而linux kali却ping不了winxp 这个问题起初我以为是vmware 15版本的虚拟网卡乱掉了 等到问题解决的时候发现 大错特错
  • 【ESP-IDF】ESP32利用wifi联网(STA模式)

    1 AP和STA的含义 AP模式 Access Point模式 提供无线接入服务 允许其它无线设备接入 提供数据访问 STA模式 Station模式 类似于无线终端 sta本身并不接受无线的接入 它可以连接到AP设备 2 STA模式例程 官
  • 卫星安全组网认证论文详解

    文章 卫星安全组网认证关键技术研究 文章链接 卫星安全组网认证关键技术研究 中国知网 1 摘要 对象 双层卫星网络 通常由地球同步轨道卫星 GEO 和低地球轨道卫星 LEO 组成 其中GEO在通信中起到中继器的作用 能够提供广域覆盖区域 但
  • python中的键不允许重复_在python中使用重复键字典

    在python中使用重复键字典 我有以下列表 其中包含具有不同值的重复的汽车登记号码 我想把它转换成一个字典 接受这个汽车登记号码的多个键 到目前为止 当我尝试将列表转换为字典时 它消除了其中一个键 有人可以告诉我如何使用重复的键字典列表是
  • FFmpeg x264编码b帧时时间戳,帧率等总结

    1 在进行FFmpeg API转码视频时 解码出来的视频帧是包含有frame gt pict type字段的 如果编码前不处理 x264会按照该类型强制编码 如果希望x264自动插入b帧编码 在编码前需要将frame gt pict typ
  • c语言什么是关键字,c语言关键字是什么

    c语言关键字是什么 c语言关键字又称为保留字 就是已被C语言本身使用 不能作其它用途使用的字 C语言简洁 紧凑 使用方便 灵活 ANSI C标准C语言共有32个关键字 9种控制语句 程序书写形式自由 区分大小写 把高级语言的基本结构和语句与
  • 关于项目启动;500报错问题

    HTTP Status 500 An exception occurred processing JSP page index jsp at line 1 type Exception report message An exception
  • 2017 年最推荐的五篇深度学习论文

    价值 思考 共鸣 简评 2017 年度最值得深入阅读的五篇深度学习相关论文 如果没读过的可以行动了 1 最酷视觉效果 使用 CycleGAN 在不成对图像集之间转换 论文 https arxiv org abs 1703 10593 目标
  • 用 clang 编译成 IR 汇编 和 目标机器汇编语言文件

    clang emit llvm c sum c o sum bc clang emit llvm S c sum c o sum ll clang S sum c o sum asm 一 C源文件 sum c int sum int x i
  • Redis基础

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