Redis学习笔记2:了解 Redis 入门

2023-11-18

1、Redis是什么?

(Remote Dictionary Server 远程字典服务)

Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:

  • 基于内存运行,性能高效
  • 支持分布式,理论上可以无限扩展
  • key-value存储系统
  • 开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

相比于其他数据库类型,Redis具备的特点是:

  • C/S通讯模型
  • 单进程单线程模型
  • 丰富的数据类型
  • 操作具有原子性
  • 持久化
  • 高并发读写
  • 支持lua脚本

2、Redis能干嘛?

Redis的应用场景有哪些?

Redis 的应用场景包括:缓存系统(“热点”数据:高频读、低频写)、计数器、消息队列系统、排行榜、社交网络和实时系统。

3、Redis相关

  • Redis推荐都是在Linux服务器上搭建的;
  • redis-benchmark 性能测试工具。

4、Redis基础知识

1.reids默认有16个数据库

基本库操作:

select 3 #切换3号数据库

dbsize #查看库大小

flushdb #清空当前库

keys * #查看当前库数据

flushall #清空全部库

部分数据操作:

expire name 10 #设置过期时间

ttl name #查看过期时间

exists name #判断是否存在name

move name 1 #移除当前key

type name #查看当前数据类型

2.Redis是单线程的

       明白Redis是很快的,官方表示, Redis是基于内存操作, CPU不是Redis性能瓶颈, Redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程了!所有就使用了单线程了!
Redis是C语言写的,官方提供的数据为100000+的QPS ,完全不比同样是使用key-vale的Memecache差!   

Redis为什么单线程还这么快?
1、误区1:高性能的服务器一定是多线程的?
2、误区2 :多线程(CPU上下文会切换! )一定比单线程效率高!
先去CPU>内存>硬盘的速度要有所了解!
核心: redis是将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作! ! ! ) ,对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下这个就是最佳的方案!


所以说使用单线程去操作效率最快!

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

Redis学习笔记2:了解 Redis 入门 的相关文章

  • 如何清理redis中不活跃的玩家?

    我正在制作一个使用 redis 来存储游戏状态的游戏 它可以很好地跟踪位置和玩家 但我没有一个好的方法来清理不活跃的玩家 每当玩家移动时 这是一个半慢速移动游戏 想想每秒 1 5 帧 我就会用新位置更新哈希并删除旧位置键 跟踪活跃玩家的最佳
  • 使用 EVAL、SCAN 和 DEL 的 Redis 通配符删除脚本返回“非确定性命令后不允许写入命令”

    因此 我正在寻求构建一个 lua 脚本 该脚本使用 SCAN 根据模式查找键并删除它们 原子地 我首先准备了以下脚本 local keys local done false local cursor 0 repeat local resul
  • 如何从 python 将无穷大传递给 redis?

    我正在使用 redis py 并希望将 inf 和 inf 与 ZRANGEBYSCORE 一起使用 我尝试使用 inf 的字符串和浮点来执行此操作 但它们返回一个空集 我怎样才能做到这一点 EDIT 我尝试执行以下命令 redis Str
  • Spring RedisTemplate:8次调用后方法键挂起

    我使用 Spring RedisTemplate spring data redis 1 7 1 与 Redis 进行通信 我需要通过正则表达式获取然后删除键 例如 context user1 我用的方法 RedisTemplate key
  • 如何在多个Lua State(多线程)之间传递数据?

    我在中启动Redis连接池redis lua 通过从 C 调用 我得到了redis lua state 此 Lua 状态全局启动一次 仅在其他线程中启动get从中 当有一个 HTTP 请求 工作线程 时 我需要从redis lua stat
  • 如何让客户端下载动态生成的非常大的文件

    我有一个导出功能 可以读取整个数据库并创建一个包含所有记录的 xls 文件 然后文件被发送到客户端 当然 导出完整数据库的时间需要大量时间 并且请求很快就会以超时错误结束 处理这种情况的最佳解决方案是什么 例如 我听说过使用 Redis 创
  • 如何使用Spring Cache处理redis异常?

    我目前正在开发一个包含 Spring Data Redis 和 Spring Cache 的项目 在spring data redis中 我使用redis模板调用redis 我在 try catch 块中处理 redis 模板抛出的所有异常
  • Redis hash写入速度非常慢

    我面临一个非常奇怪的问题 使用 Redis 时 我的写入速度非常糟糕 在理想的情况下 写入速度应该接近 RAM 上的写入速度 这是我的基准 package redisbenchmark import redis clients jedis
  • Spring Data Redis JedisConnectionException:流意外结束

    雷迪斯3 0 5Spring数据Redis 1 3 6绝地武士2 6 3 我们的 Web 应用程序通过 pub sub 从 Redis 接收数据 还以键 值对的形式在 Redis 上执行数据读 写 读 写发生在监听线程 独立监控线程和htt
  • 在 aws-elasticache 上使用 memcached 或 Redis

    我正在 AWS 上开发一个应用程序 并使用 AWS elasticache 进行缓存 我对使用 memcached 或 redis 感到困惑 我阅读了有关 redis 3 0 2 更新以及它现在如何等同于 memchached 的文章 ht
  • Redis、会话过期和反向查找

    我目前正在构建一个网络应用程序 并想使用 Redis 来存储会话 登录时 会话会使用相应的用户 ID 插入到 Redis 中 并且过期时间设置为 15 分钟 我现在想实现会话的反向查找 获取具有特定用户 ID 的会话 这里的问题是 由于我无
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • 有没有办法用Lettuce自动发现Redis集群中新的集群节点IP

    我有一个Redis集群 3主3从 运行在一个库伯内斯簇 该集群通过Kubernetes 服务 Kube 服务 我将我的应用程序服务器连接到 Redis 集群 使用Kube 服务作为 URI 通过 Redis 的 Lettuce java 客
  • Redis是如何实现高吞吐量和高性能的?

    我知道这是一个非常普遍的问题 但是 我想了解允许 Redis 或 MemCached Cassandra 等缓存 以惊人的性能极限工作的主要架构决策是什么 如何维持连接 连接是 TCP 还是 HTTP 我知道它完全是用C写的 内存是如何管理
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • Scala 使用的 Redis 客户端库建议

    我正在计划使用 Scala 中的 Redis 实例进行一些工作 并正在寻找有关使用哪些客户端库的建议 理想情况下 如果存在一个好的库 我希望有一个为 Scala 而不是 Java 设计的库 但如果现在这是更好的方法 那么仅使用 Java 客
  • Redis+Docker+Django - 错误 111 连接被拒绝

    我正在尝试使用 Redis 作为使用 Docker Compose 的 Django 项目的 Celery 代理 我无法弄清楚我到底做错了什么 但尽管控制台日志消息告诉我 Redis 正在运行并接受连接 事实上 当我这样做时 docker
  • 如何将“.csv”数据文件导入Redis数据库

    如何将 csv 数据文件导入 Redis 数据库 csv 文件中包含 id 时间 纬度 经度 列 您能否向我建议导入 CSV 文件并能够执行空间查询的最佳方法 这是一个非常广泛的问题 因为我们不知道您想要什么数据结构 您期望什么查询等等 为
  • Laravel 异常队列最大尝试次数超出

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

    在我的 Redis DB 中 我有很多prefix

随机推荐

  • 压力测试工具Apache JMeter:3:压力测试报告的生成方法

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net liumiaocn article details 101362941 Apache
  • 微信小程序css篇----边框(Border)

    一 边框 border 设置对象边框的特性 1 语法 border length style color 2 style none hidden dotted dashed solid double groove ridge inset o
  • 7种有效安全的网页抓取方法,如何避免被禁止?

    网页抓取是一种从互联网上抓取网页内容的过程 但在网络抓取种相信您也经常遇到障碍 尤其是做跨境业务的 在抓取国外的网站时更有难度 但我们站在您的立场上 提供七种有效的方法来进行网页抓取而不被阻止 最大限度地降低网站禁令的风险 并帮助您应对相关
  • linux 快速安装最新稳定版nginx(CentOS8.1 64位)

    目录 CentOS8 1 安装完成已具备 yum 指令操作 低版本缺少yum 指令自行安装 启动nginx遇到错误 nginx emerg bind to 0 0 0 0 7070 failed 13 Permission denied 配
  • 不用看网课就能学到python的文章(第五天)

    目录 类 对象 实例 类中的成员 面向对象 变量 不用看网课就能学到python的文章 第二天 Why does it work的博客 CSDN博客 不用看网课就能学到python的文章 第三天 Why does it work的博客 CS
  • 自己编写DLL文件——注册——VB工程引用——标准EXE调用(含例子)

    VB6 0的 工程 引用 中有很多控件供用户使用 但有时需要自己编写dll文件以实现某些功能 本文介绍如何自己编写一个简单的dll文件 然后在win7 64位下使用regsvr32注册 并在VB6 0中引用 最后在标准EXE中调用实现某些功
  • ES 版本,及重要特性

    参考 https www cnblogs com flyrock ES release 地址 https www elastic co cn downloads past releases elasticsearch ES版本 发布日期 版
  • 熊啸锋:精准营销及推广的四个步骤,倍增你的利润

    哈喽 我是熊啸锋老师 今天分享的主题是精准营销及推广的四个步骤 作为营销人 企业老板 项目负责人 市场开发人员等 你会经常面临 如何开发客户 如何获得大量的潜在客户名单 等很多的问题 还经常有人抱怨说 我们获取的潜在客户名单不精准 成交率非
  • Linux中清空文件的方法

    Linux中清空文件的方法 平时工作过程中 经常会遇到需要清空linux中某个日志文件的方法 下面总结一下几个常用的方法 以下待清空的文件名统一使用 test txt 表示 方法1 vi 中使用 d 1 输入 vi test txt 回车
  • word添加gif

    word添加gif动图最简单的方法 无需链接无需插件 X to Y的博客 CSDN博客 word插入动图 原文链接 https blog csdn net X To Y article details 124415532 文章目录 word
  • c++ Graphics 实现俄罗斯方块

    俄罗斯方块 一 游戏规则 1 方块种类 2 操作规则 玩家可以通过 按键 功能 a 向左一格 d 向右一格 s 顺时针旋转90度 w 逆时针旋转90度 3 积分规则 玩家根据消除的行列数量获取得分 数量 得分 1行 10分 2行 30分 3
  • Vue中的import中@的作用

    这是webpack的路径别名 相关代码定义在配置文件webpack base config里 resolve 自动补全的扩展名 extensions js vue json 默认路径代理 例如 import Vue from vue 会自动
  • UVA-10603 倒水问题 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 使用广度优先搜索和优先队列 如果找到最小的点则退出 找不到就遍历所有的情况 include
  • 在vue中引入高德地图

    既然要用到高德地图首先要申请成为高德地图开发者 并申请使用高德地图的key这两点在这篇文章就不过多赘述 有需要的小伙伴可以查查资料 或者去高德地图api官网都有很详细的介绍 高德地图官网 简单提一下申请秘钥流程 web端 控制台 gt 应用
  • Android中的关于MDM中的几个方法举例

    首先介绍一下MDM是什么的缩写 MDM是什么 MDM 是 Mobile Device Management 的缩写 中文翻译过来就是移动设备管理 随着移动设备计算能力地增强 移动设备携带越来越方便 移动化办公已经成为一种潮流 一种趋势 企业
  • MATLAB_第二篇神经网络学习_BP神经网络

    非常感谢博主wishes61的分享 这篇博客只是为了记录下第一个神经网络的训练 BP神经网络代码实现 1 BP神经网络的简介和结构参数 1 1 BP神经网络的结构组成 1 2 神经元结构示意图 1 3 BP神经网络训练界面的参数解读 2 B
  • 【华为OD机试】战场索敌(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 题目描述 有一个大小是N M的战场地图 被墙壁 分隔成大小不同的区域 上下左右四个方向相邻的空地 属于
  • 蓝牙协议规范--L2CAP

    L2CAP 分析 记住一点 软件和硬件分开理解 数据经由物理通道交互 上层通道由各层协议打通 L2CAP 全称为逻辑链路控制与适配协议 Logical Link Control and Adaptation Protocol 位于基带层之上
  • 聚簇索引与非聚簇索引(也叫二级索引)

    索引 索引 是 存储引擎 用于快速找到记录的一种 数据结构 MYSQL中索引在存储引擎层实现 而非服务器层 索引类型 聚簇索引 非聚簇索引 二级索引 主键索引 辅助索引 复合索引 前缀索引 唯一索引 压缩索引 全文索引 Hash索引 列索引
  • Redis学习笔记2:了解 Redis 入门

    1 Redis是什么 Remote Dictionary Server 远程字典服务 Redis是现在最受欢迎的NoSQL数据库之一 Redis是一个使用ANSI C编写的开源 包含多种数据结构 支持网络 基于内存 可选持久性的键值对存储数