![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
小麦大大
写写代码纪录生活
展开
-
redis面试题及答案
1、什么是Redis?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据...转载 2018-08-18 00:23:10 · 1075 阅读 · 0 评论 -
理解Redis单线程快的原因
看过相关Redis基础的同学可以知道Redis是单线程的,很多面试题也很可能会问到“为什么Redis是单线程的还那么快”。单线程的内部的原理。本力求简单讲清每个知识点,希望大家看完能有所收获。这里就简单回顾一下吧:I/O多路复用的特点是通过一种机制一个进程能同时等待多个文件描述符,而这些文件描述符其中的任意一个进入读就绪状态、等等,select/epoll函数就可以返回。select/...翻译 2018-12-29 23:22:56 · 1658 阅读 · 0 评论 -
Redis底层实现2
今天继续来学习Redis,上一篇从Redis底层实现已经将Redis常用的数据结构过了一遍了。如果还没看的同学可以先去看一遍再回来~Redis服务器的数据库Redis对过期键的处理Redis持久化策略(RDB和AOF)如果不指定具体的数量,默认会有16个数据库。1.1Redis服务器的数据库通过SELECT命令可以切换到0~15的数据库上面的命令我们也可以发现:当切换到15号数...翻译 2018-12-20 18:12:17 · 414 阅读 · 0 评论 -
Redis底层入门
一、redis入门介绍1、 redis名词:一大堆没见过的技术:lua(Lua脚本)、replication(复制)、Redis Sentinel(哨兵)、Redis Cluster(Redis 集群),当然我们也会有看得懂的技术:transactions(事务)、different levels of on-disk persistence(数据持久化)、LRU eviction(LRU淘汰...翻译 2018-12-20 09:01:23 · 320 阅读 · 0 评论 -
Redis主从复制原理
一、主从复制概述从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一...翻译 2018-08-30 09:34:29 · 1115 阅读 · 2 评论 -
AOF持久化
RDB持久化是将进程数据写入文件,而AOF持久化(即Append Only File持久化),则是将Redis执行的每次写命令记录到单独的日志文件中(有点像MySQL的binlog);当Redis重启时再次执行AOF文件中的命令来恢复数据。与RDB相比,AOF的实时性更好,因此已成为主流的持久化方案。1. 开启AOFRedis服务器默认开启RDB,关闭AOF;要开启AOF,需要在配...翻译 2018-08-30 01:47:31 · 21242 阅读 · 6 评论 -
Redis持久化原理(RDB)
在上一篇文章中,介绍了Redis的内存模型很重要,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持久化技术,主要是RDB和AOF两种持久化方案;在介绍RDB和AOF方案时,不仅介绍其作用及操作方法,同时介绍持久化实现的一些原理细节及需要注意的问题。最后,介...翻译 2018-08-29 19:44:39 · 17746 阅读 · 0 评论 -
redis预估内存应用案例
1、估算Redis内存使用量要估算redis中的数据占据的内存大小,需要对redis的内存模型有比较全面的了解,包括前面介绍的hashtable、sds、redisobject、各种对象类型的编码方式等。 下面以最简单的字符串类型来进行说明。 假设有90000个键值对,每个key的长度是7个字节,每个value的长度也是7个字节(且key和value都不是整数);下面来估算这90000个键...翻译 2018-08-29 12:15:29 · 1314 阅读 · 0 评论 -
redis五大类型内存评估
关于Redis内部编码的转换,都符合以下规律:编码转换在Redis写入数据时完成,且转换过程不可逆,只能从小内存编码向大内存编码转换。1、字符串(1)概况字符串是最基础的类型,因为所有的键都是字符串类型,且字符串之外的其他几种复杂类型的元素也是字符串。 字符串长度不能超过512MB。(2)内部编码字符串类型的内部编码有3种,它们的应用场景如下: int:8个字节...翻译 2018-08-29 12:02:00 · 5031 阅读 · 0 评论 -
深入了解一下Redis的内存模型
Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助...翻译 2018-08-29 10:24:30 · 456 阅读 · 0 评论 -
Redis数据类型之redisObject
1、Redis中的object为了便于操作,Redis定义了redisObjec结构体来表示string、hash、list、set、zset五种数据类型。redisObject定义在redis.h文件中: typedef struct redisObject { unsigned type:4; unsigned encoding:4; ...翻译 2018-08-29 08:57:16 · 7149 阅读 · 2 评论 -
Redis设计与实现(list链表)第一章
双端链表链表作为数组之外的一种常用序列抽象,是大多数高级语言的基本数据类型,因为 C 语言本身 不支持链表类型,大部分 C 程序都会自己实现一种链表类型,Redis 也不例外——它实现了一 个双端链表结构。 双端链表作为一种常见的数据结构,在大部分的数据结构或者算法书里都有讲解,因此,这一 章关注的是 Redis 双端链表的具体实现,以及该实现的 API ,而对于双端链表本身,以及双端 链...原创 2018-08-22 20:27:42 · 296 阅读 · 0 评论 -
Redis设计与实现(学习总结第一章)
Redis 和其他很多 key-value 数据库的不同之处在于,Redis 不仅支持简单的字符串键值对,它 还提供了一系列数据结构类型值,比如列表、哈希、集合和有序集,并在这些数据结构类型上 定义了一套强大的 API 。1.1 简单动态字符串Sds (Simple Dynamic String,简单动态字符串)是 Redis 底层所使用的字符串表示,它被用 在几乎所有的 Redis ...原创 2018-08-22 19:40:51 · 230 阅读 · 0 评论 -
Redis缓存雪崩和穿透的解决方法
今天来分享一下Redis几道常见的面试题:如何解决缓存雪崩?如何解决缓存穿透?如何保证缓存与数据库双写时一致的问题?一、缓存雪崩1.1什么是缓存雪崩?回顾一下我们为什么要用缓存(Redis):现在有个问题,如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。在前面学习我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设置过期时间...翻译 2019-01-12 20:43:34 · 35754 阅读 · 10 评论