Redis缓存数据库(一)「建议收藏」

Redis缓存数据库(一)「建议收藏」先导知识:Memcache Memcache是一个高性能的分布式内存对象缓存系统,代码类似于Hash。 已经有了Memcache,为什么还要用Redis呢? 下面Memcache的缺点: 不支持数据持

Redis缓存数据库(一)

先导知识:Memcache

Memcache是一个高性能的分布式内存对象缓存系统,代码类似于Hash。

已经有了Memcache,为什么还要用Redis呢?

下面Memcache的缺点:

  • 不支持数据持久化存储
  • 不支持主从
  • 不支持分片

而对比Redis数据库,以上三点都支持,所以要使用redis。

 问题一:为什么redis能这么快?

  Redis的访问速度可达 10万+QPS(query per second,每秒内查询次数)。

  1. 完全基于内存:绝大部分请求是纯粹的内存操作,不受限于硬盘读取速度,故而执行效率高
  2. 数据结构简单,是(key,value)形式,对数据的操作也简单
  3. 采用单线程也能处理高并发请求
  4. 相对于传统的阻塞I/O,Redis使用多路I/O复用模型,非阻塞I/O
  5. 具有原子性操作。
问题二:Redis采用的多路I/O复用函数?

  多路I/O复用函数有:epoll、kqueue、evport、select    链接:多路I/O复用技术

  1. 因地制宜,有的系统只有select
  2. 优先选择时间复杂度为O(1)的函数作为底层实现
  3. 以时间复杂度为O(n)的select作为保底
  4. 基于reactor设计模式监听I/O事件
 问题三:Redis的数据类型有哪些?(重点!!)
  1. string:最基本的数据类型,二进制安全,可以存储任何格式的数据(jpg图片,序列化的对象)
  2. hash:string元素组成的字典,适合用于存储对象
  3. list:列表,特点:先进先出、有序(按添加顺序)、可重复
  4. set:string元素组成的无序集合,通过hash实现,不允许重复
  5. sorted set:通过分数来为集合的成员进行从小到大的排序
  6. 用于计数的HyperLogLog
  7. 用于支持存储地理位置信息的Geo
Redis的底层数据类型基础:

  1、简单动态字符串;2、链表;3、字典;4、跳跃表

  5、整数集合;6、压缩列表;7、对象

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10375.html

(0)
上一篇 2022-12-28
下一篇 2022-12-28

相关推荐

  • 简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别_m序列的产生方法

    简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别_m序列的产生方法[toc] 背景 应用端需要生成依次递增的序列来做流水序号等,方案有1、redis /MySQL SEQUENCE引擎生成序列;2、MySQL中myisam表 replace into方式;3、MyS

    2023-02-12
    151
  • mysql 的读写锁与并发控制

    mysql 的读写锁与并发控制1.无论何时只要有多个查询在同一时刻修改数据,都会产生并发控制的问题 2.讨论mysql在两个层面,服务器层和存储引擎层,如何并发控制读写 3.举了个mbox邮箱文件的例子,说如果有多个进程同时对m…

    2023-03-08
    158
  • ORACLE RMAN自动备份还原脚本设计

    ORACLE RMAN自动备份还原脚本设计很多时候,我们DBA需要定时对生产环境进行整体备份,并恢复到测试环境,供开发人员调试或测试,如果数据量比较大的情况下,RMAN方式比较高效省时,下面策略是在生产环境部署备份任务,并在测试模拟环境进行…

    2022-12-22
    154
  • 利用Python的strftime方法进行时间格式化

    利用Python的strftime方法进行时间格式化在Python中,strftime方法是非常有用的一个方法,它可以将日期时间格式化为字符串,方便输出或者存储。strftime方法的使用非常灵活,可以根据需要设定不同的时间格式,满足不同的需求。

    2024-03-11
    87
  • 阿里:MySQL数据库规范「终于解决」

    阿里:MySQL数据库规范「终于解决」阿里:MySQL数据库规范 简介:基于阿里数据库设计规范扩展而来 设计规范 1.【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循: 不是频繁修改的字段。 不是 varcha

    2023-03-22
    158
  • Redis | 第4章 Redis中的数据库《Redis设计与实现》「终于解决」

    Redis | 第4章 Redis中的数据库《Redis设计与实现》「终于解决」(第4章 Redis中的数据库) 前言 参考资料:《Redis设计与实现 第二版》; 第二部分为单机数据库的实现,主要由以下模块组成:数据库、持久化、事件、客户端与服务器; 本篇将介绍 Redis 中

    2023-04-29
    141
  • Python神器:最大数计算

    Python神器:最大数计算在日常生活和工作中,需要使用计算机进行一些最大值的计算。比如要找到一个文件夹中最大的文件,或者计算一段序列中的最大值。这时就需要使用一些算法和工具来实现最大数计算。

    2024-01-06
    115
  • 分库分表shardingjdbc_shardingjdbc分库分表原理

    分库分表shardingjdbc_shardingjdbc分库分表原理1. 分库分表利器 Sharding Sphere 介绍 功能: 数据分片 分库分表 读写分离 分片策略定制 无中心化分布式主键 分布式事务 标准化事务接口 XA 强一致性事务 柔性事务 数据库治理…

    2023-03-25
    154

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注