redis-sentinel

ASP.NET Core 使用 Redis 和 Protobuf 进行 Session 缓存

我们两清 提交于 2020-08-18 04:30:01
原文: ASP.NET Core 使用 Redis 和 Protobuf 进行 Session 缓存 前言 上篇博文 介绍了怎么样在 asp.net core 中使用中间件,以及如何自定义中间件。项目中刚好也用到了Redis,所以本篇就介绍下怎么样在 asp.net core 中使用 Redis 进行资源缓存和Session缓存。 如果你觉得对你有帮助的话,不妨点个【推荐】。 目录 Redis 介绍 asp.net core Session 介绍 Redis & Session 实例讲解 Session的使用 使用 Protobuf 给 Session添加扩展方法 Redis 介绍 下面是 Redis官网 的介绍: Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis

2.docker学习笔记之入门,redis主从配置1

允我心安 提交于 2020-08-17 06:55:38
主从复制的作用主要包括: 1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 2、故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。 3、负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点) 分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。 4、读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量; 5、高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。 从节点开启主从复制,有3种方式: (1)配置文件 在从服务器的配置文件中加入:slaveof <masterip> <masterport> (2)启动命令 redis-server启动命令后加入 --slaveof <masterip> <masterport> (3)客户端命令 Redis服务器启动后,直接通过客户端执行命令:slaveof <masterip> <masterport>,则该Redis实例成为从节点。 通过 info replication

Redis缓存的使用与设计

别来无恙 提交于 2020-08-14 18:57:13
1. 缓存的收益与成本 1. 收益: 加速读写 读缓存中的数据要比读数据存储位置的速度要快。(例如:寄存器-内存,内存-磁盘) 降低后端负载 如果不加缓存的话,并发的压力会直接加到后端数据库上,并发较大的时候,数据库可能会hold不住,而这里可以通过增加一层缓存,通过直接访问缓存不仅访问速度更快,而且减少了io次数,减少了数据库的压力。 2. 成本: 数据不一致: 缓存层是数据层的时间窗口不一致,和更新策略有关。 代码维护成本: 多了一层缓存逻辑 运维成本: 例如Redis Cluster… 2. 缓存更新策略 1. LRU/LFU/FIFO(一致性差,维护成本低) 2. 超时剔除: 例如expire(一致性差,维护成本低) 对于一些可以容忍数据不一致性的情况,可以使用这种策略。 3. 主动更新:开发控制生命周期(一致性较强,维护成本较高) 可以利用发布-订阅这种思想,在缓存来监听数据是否发生变化,若发生变化则失效. (例如volatile关键字的实现,缓存一致性协议中的嗅探机制,就是使用的这一策略, 也可利用消息队列来维护最终一致性) 低一致性: 最大内存和淘汰策略 高一致性:超时剔除和主动更新结合,最大内存和淘汰策略兜底(防OOM)。 3. 缓存的粒度控制 缓存的粒度,以缓存mysql中的数据为例,例如查询用户信息操作频繁,那么应该缓存用户信息的所有属性(select *)

面试必问之redis

吃可爱长大的小学妹 提交于 2020-08-13 13:26:14
这里是我作为10年面试经验总结的面试中必问问题 问题一 简单介绍下redis redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化 问题二 redis有哪几种数据结构 1、string是redis最基本的类型,可以理解成与memcached一模一样的类型,一个key对应一个value。value不仅是string,也可以是数字。string类型是二进制安全的,意思是redis的string类型可以包含任何数据,比如jpg图片或者序列化的对象。string类型的值最大能存储512M。 2、Hash是一个键值(key-value)的集合。redis的hash是一个string的key和value的映射表,Hash特别适合存储对象。常用命令:hget,hset,hgetall等。 3

redis

柔情痞子 提交于 2020-08-12 07:39:36
springBoot整合redisCluster(redis集群)模式 Redis的哨兵模式和集群模式 Redis哨兵(Sentinel)模式 Redis Sentinel集群部署 首次支持多线程:Redis 6.0与老版性能对比评测 高并发下redis的瓶颈分析 Docker化高可用redis集群 来源: oschina 链接: https://my.oschina.net/miaojiangmin/blog/4294403

Redis简介与部署

我与影子孤独终老i 提交于 2020-08-11 10:26:12
  一、简介   Redis是什么?redis是一款基于BSD协议,开源的非关系型数据库(nosql数据库),作者是意大利开发者Salvatore Sanfilippo在2009年发布,使用C语言编写;redis是基于内存存储,而且是目前比较流行的键值数据库(key-value database),它提供将内存通过网络远程共享的一种服务,提供类似功能的还有memcache,但相比 memcache,redis 还提供了易扩展、高性能、具备数据持久性等功能。主要的应用场景有session共享,常用于web集群中的tomcat或PHP中多web服务器的session共享;消息队列,ELK的日志缓存,部分业务的订阅发布系统;计数器,常用于访问排行榜,商品浏览数等和次数相关的数值统计场景;缓存,常用于数据查询、电商网站商品信息、新闻内容等;相对memcache,redis支持数据的持久化,可以将内存的数据保存在磁盘中,重启redis服务或者服务器之后可以从备份文件中恢复数据到内存继续使用;支持string(字符串)、hashes(关联数组)、list(列表)、set(集合)、sorted set(有序集合)、空间索引等数据结构的数据;支持数据的备份,可以实现类似于mysql中的主从模式的数据备份,支持使用快照和AOF(append only file)的数据持久化

3.docker学习笔记之入门,redis主从配置2 理论

非 Y 不嫁゛ 提交于 2020-08-10 23:40:17
全量复制 用于初次复制或其它无法进行部分复制的情况,将主节点中的所有数据都发送给从节点,是一个非常重型的操作,当数据量较大时,会对主从节点和网络造成很大的开销 部分复制 用于处理在主从复制中因网络闪断等原因造成的数据丢失场景,当从节点再次连上主节点后,如果(条件允许),主节点会补发丢失数据给从节点。因为补发的数据远远小于全量数据,可以有效避免全量复制的过高开销,需要注意的是,如果网络中断时间过长,造成主节点没有能够完整地保存中断期间执行的写命令,则无法进行部分复制,仍使用全量复制 复制偏移量 参与复制的主从节点都会维护自身复制偏移量。主节点(master)在处理完写入命令后,会把命令的字节长度做累加记录,统计信息在 info relication 中的master_repl_offset 指标中: 127.0.0.1:6379> info replication 从节点(slave)每秒钟上报自身的复制偏移量给主节点,因此主节点也会保存从节点的复制偏移量,统计指标如下: 从节点在接收到主节点发送的命令后,也会累加记录自身的偏移量。统计信息在 info relication 中的 slave_repl_offset 中 复制积压缓冲区 复制积压缓冲区是保存在主节点上的一个固定长度的队列,默认大小为1MB,当主节点有连接的从节点(slave)时被创建,这时主节点(master

Redis详解(九)------ 哨兵(Sentinel)模式详解

喜欢而已 提交于 2020-08-08 14:00:03
  在上一篇博客---- Redis详解(八)------ 主从复制 ,我们简单介绍了Redis的主从架构,但是这种主从架构存在一个问题,当主服务器宕机,从服务器不能够自动切换成主服务器,为了解决这个问题,我们又介绍了哨兵模式,本篇博客我们继续深入的介绍一下这种模式. 1、架构图    2、服务器列表    3、搭建主从模式    ①、主要配置项   主服务器(上图的Node1)配置文件 redis.config 主要配置项: #配置端口 port 6379 #以守护进程模式启动 daemonize yes #pid的存放文件 pidfile /var/run/redis_6379.pid #日志文件名 logfile "redis_6379.log" #存放备份文件以及日志等文件的目录 dir "/opt/redis/data"   从服务器配置文件主要配置项基本和主服务器保持一致,需要修改端口 port ;另外存放位置和日志文件名也可以根据需要修改.   为了表示主从关系,还需要在从服务器配置文件中添加一行 重要配置 : #配置主服务器IP,端口 slaveof 192.168.14.101 6379    ②、验证主从关系   配置完成后,我们通过 redis-server redis.conf 命令启动Redis.然后通过 redis-cli -p 端口

高可用Redis:Redis Cluster

↘锁芯ラ 提交于 2020-08-06 04:44:27
1.为什么要实现Redis Cluster 1.主从复制不能实现高可用 2.随着公司发展,用户数量增多,并发越来越多,业务需要更高的QPS,而主从复制中单机的QPS可能无法满足业务需求 3.数据量的考虑,现有服务器内存不能满足业务数据的需要时,单纯向服务器添加内存不能达到要求,此时需要考虑分布式需求,把数据分布到不同服务器上 4.网络流量需求:业务的流量已经超过服务器的网卡的上限值,可以考虑使用分布式来进行分流 5.离线计算,需要中间环节缓冲等别的需求 2.数据分布 2.1 为什么要做数据分布 全量数据,单机Redis节点无法满足要求,按照分区规则把数据分到若干个子集当中 2.2 常用数据分布方式之顺序分布 比如:1到100个数字,要保存在3个节点上,按照顺序分区,把数据平均分配三个节点上 1号到33号数据保存到节点1上,34号到66号数据保存到节点2上,67号到100号数据保存到节点3上 顺序分区常用在关系型数据库的设计 2.3 常用数据分布方式之哈希分布 例如1到100个数字,对每个数字进行哈希运算,然后对每个数的哈希结果除以节点数进行取余,余数为1则保存在第1个节点上,余数为2则保存在第2个节点上,余数为0则保存在第3个节点,这样可以保证数据被打散,同时保证数据分布的比较均匀 哈希分布方式分为三个分区方式: 2.3.1 节点取余分区 比如有100个数据

redis伪分布主从环境配置

依然范特西╮ 提交于 2020-08-05 09:20:17
监控同一个 Master 的 Sentinel 会自动连接,组成一个分布式的 Sentinel 网络,互相通信并交换彼此关于被监视服务器的信息 下图中 3 个 Sentinel 监控着 S1 和它的 2 个 Slave 配置: 承接上篇文章 : redis单机环境搭建 https://my.oschina.net/u/3095186/blog/4373278 ---主从模式 1.创建redis目录: mkdir redis 2.在redis目录下分别创建3个端口目录: 6380,6381,6382 (不在配置文件中写他的目录指定关系,直接在当前目录下执行,持久化目录) 3.当前目录下分别启动3个实例: redis-server --port 6380 redis-server --port 6381 --slaveof 127.0.0.1 6380 redis-server --port 6382 --slaveof 127.0.0.1 6380   ----------------------------------------------- --伪分布哨兵集群搭建 : 1 拷贝src下的redis-sentinel至bin目录下: 2 启动三个主从redis实例 3 创建哨兵配置文件目录: mkdir sent 4 目录下创建启动配置文件病拷贝: vi s1.conf cp