Redis
文章平均质量分 84
Redis
phygram
加油→_→
展开
-
Redis面试题总结
Redis单机并发量能达到 万级,MySQL的并发量一般是 千级,它们支持的并发量可能相差十倍,所以要尽量把流量拦截在缓存层。1. 缓存击穿:key过期场景,Redis中的key过期,但MySQL中还有Redis中的某个key在某个时间过期,导致缓存的作用失效,所有的外界请求直接打在MySQL上。缓存击穿的后果是 增大MySQL数据库的负载:应用层(数据库代理层)往往采用的是“线程池+连接池”的处理模式,当缓存中的某个key失效,多个线程、多个连接在同一时刻都无法在缓存中查找到这一key值,就会原创 2021-10-21 00:09:37 · 142 阅读 · 0 评论 -
Redis C API的定义及使用方法:
遗留问题:数据库连接池的数量设置为多大合适?总结:凡是池子,都是一个“list”;(不论是线程池还是连接池)凡是Manager,都是一个“map”。“池子”的成员变量也是很固定的:list m_free_list;ThreadNotify m_free_notify;int cur_conn_cnt;int max_conn_cnt;因为池子的作用就是供他人调用,从池子中拿走一个、归还一个,list链表就是互斥区,锁是为了保护互斥区。#Redis数据库连接池原创 2021-09-12 13:07:13 · 624 阅读 · 0 评论 -
Redis数据结构与对象(二):5种对象
Redis对象 概述:Redis基于6种基础数据结构(SDS、双端链表、字典、跳跃列表、整数集合、压缩列表)实现了5中对象:字符串对对象、列表对象、哈希对象、集合对象 和 有序集合对象。(对于Redis数据库中保存的键值对来说,“键”key总是一个字符串对象(SDS),而值可以是5种对象中的任意一种,所以,当我们称呼一个数据库键是“列表键”时,实际指的是“这个数据库键所对应的值为列表对象”。)针对不同的应用场景,同一种类型的对象可以选用不同的基础数据结构来实现,从而优化对象在不同场景下的使用效率,并原创 2021-03-31 23:58:37 · 181 阅读 · 0 评论 -
Redis数据结构与对象(一):6种数据结构
链表由于C语言中本身并未实现链表这样的数据结构,所以Redis中自行实现了链表。(不同于字符串,C语言中本身是有字符串这样的数据结构的,Redis为了实现安全及高效,自行在C字符串的基础上封装实现了SDS;而对于链表C语言本身是没有的,Redis自行实现)。3.1 链表与链表结点的实现:(双向链表)节点:// adlist.h/listNode// 双端链表:typedef struct listNode { struct listNode *prev; //前置节点 struct li原创 2021-03-31 21:02:12 · 230 阅读 · 0 评论 -
Redis通信协议格式:RESP
Redis客户端与服务器之间使用一种名为 RESP(REdis Serialization Protocol) 的二进制安全文本协议进行通信。RESP的设计十分精巧,下面是一张完备的协议描述图:举例说明:SET:注:文中图片来自:https://www.jianshu.com/p/f670dfc9409b...转载 2021-03-06 17:06:53 · 450 阅读 · 1 评论 -
Redis单机模式(二):RDB与AOF持久化
一、RDB持久化:1. RDB持久化的作用:Redis数据库中的数据都是保存在内存中的,为了避免服务器进程退出 或者 出现主机下电导致的数据丢失,服务器需要定时的将数据从 内存 存储到 磁盘 中以达到 持久化 的目的。并且服务器还可以从磁盘中保存的RDB文件中还原数据库的状态。RDB持久化 既可以手动执行,也可以根据服务器配置选项 定期执行。总结起来一句话,Redis的RDB持久化功能就是为了避免保存在内存中的数据丢失。2. RDB文件的创建和载入:2.1 创建:有两个 Redis命令 用原创 2021-03-03 23:35:04 · 139 阅读 · 1 评论 -
Redis单机模式(一):过期键处理
1. 服务器中的数据库与键空间:Redis中使用 redisServer 结构体表示一个服务器,一个服务器中可以包含多个数据库,使用 dbnum 表示,默认Redis服务器会创建 16个 数据库,保存在 redisDb*db 数组中:(使用 SELECT 命令切换数据库,如: redis> SELEST 2)//redisServer 结构体表示 Redis服务器:struct redisServer { redisDb *db; //一个数组,保存着服务器中的所有数据库 int d原创 2021-03-03 21:45:34 · 130 阅读 · 1 评论 -
Redis多机模式(二):sentinel哨兵
目录:Sentinel是什么?有什么用途?Sentinel环境搭建?Sentine1的工作流程?如何实现监视功能《故障检测及故障转移)?相关结构体相关命令参考内容:《Redis设计与实现》第三部分 第16章 SentinelRedis官方文档: https://redis.io/topics/sentinel1. Sentinel是什么?有什么用途?Sentinel是Redis的高可用性(high availability)解决方案:将一个或多个Redis服务器配置成Senti原创 2021-02-02 01:22:07 · 526 阅读 · 0 评论 -
Redis多机模式(三):集群
目录:集群是什么?有什么用途?集群的环境如何搭建?集群的功能如何实现?3.1 高性能:多主节点3.2 高可用性:故障转移集群相关的命令?参考内容:《Redis设计与实现》第三部分第17章 集群Redis官方文档: https://redis.io/topics/cluster-spec1.集群是什么?有什么用途?Redis集群是Redis提供的分布式数据库方案(adistributed implementation of Redis),将数据库分成 16384 个原创 2021-01-31 00:41:08 · 201 阅读 · 0 评论 -
Redis多机模式(一):主从复制
目录:1.主从复制是什么?有什么用途?2.主从复制的环境如何搭建?3.主从复制的功能如何实现?4.一个完整的主从复制过程?参考内容:《Reis设计与实现》第三部分第十五章复制Redis官方文档:https://redis.io/topics/replication1.主从复制是什么?有什么用途?概念:主从复制是指在Redis中通过配置,让一个服务器去复制另一个服务器的数据,使二者存有相同的数据内容,达到"数据库状态一致"的效果。用途:(1)通过主从复制,一个主节点可以有多个从节点原创 2021-01-28 00:46:53 · 1164 阅读 · 7 评论 -
Redis基本用法
1原创 2020-12-13 01:59:53 · 441 阅读 · 0 评论