摘要: 1.集群角色及架构 在搭建集群之前,需要首先了解几个概念:路由,分片、副本集、配置服务器等 mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把对应的数据请求请求转发到对应的shard服务器上。在 阅读全文
posted @ 2021-04-11 22:51 小家电维修 阅读(330) 评论(0) 推荐(0)
摘要: 由于3.X的文档是在3.X当前最新版本前记录,所以这里列出一些常用的操作,比如建立库,删除库,等一些格式,然后在描述开启远程和创建用户的一些区别,以及讲解2.X和3.X配置文件区别。 1. Mongo配置文件及其它操作 MongoDB2.6开始推荐一种基于YAML格式的配置文件,并且仍然兼容之前的配 阅读全文
posted @ 2021-04-10 18:31 小家电维修 阅读(274) 评论(0) 推荐(0)
摘要: 1. 介绍 由于mongodb默认没有设置密码访问,而且mongodb的访问权限设计,必须使用有权限的用户给每个库设置一个用户,才能使用,且2.X版本与3.X版本区别有点大,所以要注意以下几点。 1.mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证。 2.切换到admin数 阅读全文
posted @ 2021-04-10 15:08 小家电维修 阅读(965) 评论(0) 推荐(0)
摘要: 1.Redis支持哪几种数据类型? 支持多种类型的数据结构 1.string:最基本的数据类型,二进制安全的字符串,最大512M。 2.list:按照添加顺序保持顺序的字符串列表。 3.set:无序的字符串集合,不存在重复的元素。 4.sorted set:已排序的字符串集合。 5.hash:key 阅读全文
posted @ 2021-04-07 21:06 小家电维修 阅读(114) 评论(0) 推荐(0)
摘要: 1. 位与字节 1个字节(byte)等于8个位(bit)。(计算机常识)。 2. string与bitmap Redis里的bitmap是属于string这个数据类型里的。可以help进行查看bit相关api。 3. bitmap的api 3.1 setbit 稍微解释下,setbit 三个参数,第 阅读全文
posted @ 2021-04-07 20:16 小家电维修 阅读(148) 评论(0) 推荐(0)
摘要: 1. 前言 当我们需要分布式系统提供更强的性能时,该怎样扩展系统呢?什么时候该加机器?什么时候该重构代码?扩容时,究竟该选择哈希算法还是最小连接数算法,才能有效提升性能? 在面对 Scalability 可伸缩性问题时,我们必须有一个系统的方法论,才能应对日益复杂的分布式系统。这一讲我将介绍 AKF 阅读全文
posted @ 2021-04-07 17:46 小家电维修 阅读(196) 评论(0) 推荐(0)
摘要: 1. 什么是CAP 是一种定理,多用于描述分布式架构,CAP这三个字母对应三种理念,且这三种理念只能两两组合,不能CAP三种理念同时共存(为什么?下面说)。 C:Consisteny(一致性) A:Availability(可用性) P:Partition Tolerance(分区容错性) 2. 细 阅读全文
posted @ 2021-04-07 16:55 小家电维修 阅读(2779) 评论(0) 推荐(0)
摘要: 公司项目压测过程中,使用redis作为缓存系统,发现压测性能无法提升,排查后发现,redis有大量的慢查询,甚至有的慢查询在3秒左右,由于单线程的原因,导致压测性能一直无法提升,最后发现是研发的代码查询时全部使用“*”来匹配,导致查询过慢,所以这里借鉴大佬的文档作一次记录。 1. 慢查询分析 许多存 阅读全文
posted @ 2021-04-06 19:54 小家电维修 阅读(162) 评论(0) 推荐(0)
摘要: 1. 需求由来 1.Redis高并发的问题 Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:缓存击穿、缓存雪崩、缓存和数据一致性,以及今天要谈到的缓存并发竞争。 这里的并发指的是多个redis的client同时set key引起的并发问题。 2.出现并发设 阅读全文
posted @ 2021-04-06 18:37 小家电维修 阅读(497) 评论(0) 推荐(0)
摘要: 1.缓存雪崩 数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。 比如一个雪崩的简单过程 1.redis集群大面积故障 2.缓存失效,但依然大量请求访问缓存服务redis 3.redis大量失效后,大量请求转向到mysql数据库 阅读全文
posted @ 2021-04-06 17:47 小家电维修 阅读(184) 评论(0) 推荐(0)
摘要: 1. Redis的高并发和快速的原因 1.redis是基于内存的,内存的读写速度非常快; 2.redis是单线程的,省去了很多上下文切换线程的时间; 3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、 阅读全文
posted @ 2021-04-02 23:16 小家电维修 阅读(414) 评论(0) 推荐(0)
摘要: 具体参考官方链接https://redis.io/topics/partitioning,在redis3.0之前,分片由一些其它方式完成,redis3.0只有加入了集群的功能。 阅读全文
posted @ 2021-04-01 22:01 小家电维修 阅读(58) 评论(0) 推荐(0)
摘要: 本章将介绍3种非常有价值的降低Redis内存占用的方法。降低Redis的内存占用有助于减少创建快照和加载快照所需的时间、提升载入AOF文件和重写AOF文件时的效率、缩短从服务器进行同步所需的时间,并且能让Redis存储更多的数据而无需添加额外的硬件。 本章首先会介绍如何使用Redis的短数据结构来更 阅读全文
posted @ 2021-04-01 19:22 小家电维修 阅读(101) 评论(0) 推荐(0)
摘要: 计数信号量是一种锁,它可以让用户限制一项资源最多能够同时被多少个进程访问,通常用于限定能够同时使用的资源数量。你可以把Redis分布式锁里面创建的锁看作是只能被一个进程访问的信号量。 计数信号量和其他种类的锁一样,都需要被获取和释放。客户端首先需要获取信号量,然后执行操作,最后释放信号量。计数信号量 阅读全文
posted @ 2021-03-31 20:27 小家电维修 阅读(531) 评论(0) 推荐(0)
摘要: 一般来说.在对数据进行“加锁”时,程序首先需要通过获取(acquire)锁来得到对数据进行排他性访问的能力,然后才能对数据执行一系列操作,最后还要将锁释放(release)给其他程序。对于能够被多个线程访问的共享内存数据结构(shared-memory data structure )来说.这种“先 阅读全文
posted @ 2021-03-31 17:52 小家电维修 阅读(120) 评论(0) 推荐(0)