分布式
文章平均质量分 89
岁月玲珑
厚积薄发
展开
-
【2. Nginx高级知识】
复习1、location 匹配规则:精准 --》普通 --》正则(非正则除外)2、代理传参:proxy_pass = ip:port , 将整个 path 部分传入 tomcat proxy_pass = ip:port/xxx , 只将匹配 path 的剩余部分传入 tomcat3、rewrite 【break/last/redirect/permanent/null】 中断无 location/中断有location**/中断 302/中断 301/**不中断 location4、r原创 2022-01-24 00:40:46 · 3822 阅读 · 0 评论 -
【1. Nginx基础知识】
一. Wath?Nginx 是俄罗斯人编写的十分轻量级的 HTTP 服务器,Nginx,它的发音为“engine X”(记忆: 去掉两边的e+x),是 一个高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名.业界一致 认为它是 Apache2.2+mod_proxy_balancer 的轻量级代替者,不仅是因为响应静态页面的速 度非常快,而且它的模块数量达到 Apache 的近 2/3原创 2022-01-17 00:07:22 · 2283 阅读 · 0 评论 -
【9. Redis常见面试题】
Redis常见面试题什么是 Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD 许可)高性能非关系型(NoSQL)的键值对数据库。(它的定位是NoSql) Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串, 值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常 快,因此 redis 被广泛应用于缓存方向,每秒可以处理超原创 2022-01-08 18:27:25 · 688 阅读 · 0 评论 -
【8. Redis 的设计、实现】
Redis 的设计、实现数据结构和内部编码数据结构和内部编码type命令type 命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符 串)hash(哈希)、list(列表)、set(集合)、zset (有序集合),但这些只是 Redis 对外的 数据结构。每种数据结构都有两种以上的编码例如 list 数据结构包含了 linkedlist 和 ziplist 两种内部编码。同时有些内部编码,例如 ziplist,可以作为多种 外部数据结构的内部实现,可以通过 object原创 2022-01-08 15:32:18 · 1245 阅读 · 0 评论 -
【7. 缓存实践】
缓存实践全面了解缓存缓存的意义缓存大体可以分为三类:客户端缓存;服务端缓存;网络中的缓存。根据规模和部署方式缓存也可以分为:单体缓存;缓存集群;分布式缓存。可见,在软件系统中缓存几乎无处不在,所以说缓存为王不是没有原因的。 从浏览器到网络,再到应用服务器,甚至到数据库,通过在各个层面应用缓存技术,整个系统的性能将大幅提高。例如,缓存离客户端更近,从缓存请求内容比从源服务器所用时间更少,呈现速度更快,系统就显得更灵敏。缓存数据的重复使用,大大降低了用户的带宽使用,其实也是一种变相的省钱(如原创 2022-01-04 22:52:06 · 750 阅读 · 0 评论 -
【6. Redis缓存使用问题】
Redis缓存使用问题数据一致性工程实践 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 先读缓存数据,缓存数据有,则立即返回结果;如果没有数据,则从数据库读数据,并且把读到的数据同步到缓存里,提供下次读请求返回数据。 这样能有效减轻数据库压力,但是如果修改删除数据,因为配置信息缓存在内存中,而内存时无法感知到数据在数据库的修改。这样就会造成数据库中的数据与缓存中数据不一致的问题,那该如何解决呢?有好几种解决方案,先更新缓存,再更原创 2022-01-04 22:50:50 · 903 阅读 · 0 评论 -
【5. Redis的高并发高可用】
Redis的高并发高可用复制 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提供了复制功能,实现了相同数据的多个Redis 副本。复制功能是高可用Redis的基础,后面章节的哨兵和集群都是在复制的基础上实现高可用的。配置建立复制 参与复制的Redis实例划分为主节点( master)和从节点(slave)。默认情况下,Redis都是主节点。每个从节点只能有一个主节点,而主节点可以同时具有多个从节点。复制的数原创 2022-01-03 18:12:18 · 2014 阅读 · 0 评论 -
【redis 哨兵搭建】
安装和部署部署拓扑结构我们以以3个 Sentinel节点、1个主节点、2个从节点组成一个Redis Sentinel进行说明。master: 127.0.0.1 6885 主节点slave-1: 127.0.0.1 6886 slave-1 节点slave-2: 127.0.0.1 6887 slave-2 节点sentinel-1: 127.0.0.1 26885 sentinel-1 节点sentinel-2: 127.0.0.1 26886 sentinel-2 节点sentinel-原创 2022-01-03 16:09:50 · 972 阅读 · 0 评论 -
【redis集群:2. 集群伸缩】
集群伸缩 Redis集群提供了灵活的节点扩容和收缩方案。在不影响集群对外服务的情况下,可以为集群添加节点进行扩容也可以下线部分节点进行缩容。 Redis集群可以实现对节点的灵活上下线控制。其中原理可抽象为槽和对应数据在不同节点之间灵活移动。首先来看我们之前搭建的集群槽和数据与节点的对应关系。 **三个主节点分别维护自己负责的槽和对应的数据**,如果希望加入1个节点实现集群扩容时,需要通过相关命令把一部分槽和数据迁移给新节点。集群扩容节点配置和启动节点 我们加入两个节点,主节点的端口原创 2022-01-03 15:19:12 · 728 阅读 · 0 评论 -
【redis集群:1. 搭建集群】
搭建集群介绍完Redis集群分区规则之后,下面我们开始搭建Redis集群。搭建集群有几种方式:1)依照Redis 协议手工搭建,使用cluster meet、cluster addslots、cluster replicate命令。2)5.0之前使用由ruby语言编写的redis-trib.rb,在使用前需要安装ruby语言环境。3)5.0及其之后redis摒弃了redis-trib.rb,将搭建集群的功能合并到了redis-cli。我们简单点,采用第三种方式搭建。集群中至少应该有奇数个节点,所以原创 2022-01-03 15:18:13 · 576 阅读 · 0 评论 -
【4. 从Redis到分布式锁】
分布式锁 与分布式锁相对应的是「单机锁」,我们在写多线程程序时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来「互斥」,以保证共享变量的正确性,其使用范围是在「同一个进程」中。 如果换做是多个进程,需要同时操作一个共享资源,如何互斥呢? 例如,现在的业务应用通常都是微服务架构,这也意味着一个应用会部署多个进程,那这多个进程如果需要修改 MySQL 中的同一行记录时,为了避免操作乱序导致数据错误,此时,我们就需要引入「分布式锁」来解决这个问题了。 想要实现分布式锁,必须借助一原创 2022-01-01 18:58:56 · 129 阅读 · 0 评论 -
【3. Redis高级特性】
Redis高级特性慢查询 许多存储系统(例如 MySQL)提供慢查询日志帮助开发和运维人员定位系统 存在的慢操作。所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时 间,当超过预设阀值,就将这条命令的相关信息(例如:发生时间,耗时,命令的 详细信息)记录下来,Redis 也提供了类似的功能。 Redis 客户端执行一条命令分为如下 4 个部分:1)发送命令 2)命令排队 3)命令执行 4)返回结果需要注意,慢查询只统计步骤 3)的时间,所以没有慢查询并不代表客户端 没有超时问题。原创 2022-01-01 18:58:45 · 1180 阅读 · 0 评论 -
【2. Redis 高级数据结构】
Redis 高级数据结构Bitmaps 现代计算机用二进制(位)作为信息的基础单位,1 个字节等于 8 位,例如“big” 字符串是由 3 个字节组成,但实际在计算机存储时将其用二进制表示,“big”分 别对应的 ASCII 码分别是 98、105、103,对应的二进制分别是 01100010、01101001 和 01100111。 许多开发语言都提供了操作位的功能,合理地使用位能够有效地提高内存使 用率和开发效率。Redis 提供了 Bitmaps 这个“数据结构”可以实现对位的操作。 把原创 2021-12-31 01:26:24 · 928 阅读 · 0 评论 -
【1. Redis入门与应用】
Redis入门与应用 Redis一个开源的基于键值对(Key-Value)NoSQL数据库。使用ANSI C语言编写、支持网络、基于内存但支持持久化。性能优秀,并提供多种语言的API。 我们要首先理解一点,我们把Redis称为KV数据库,键值对数据库,那就可以把Redis内部的存储视为存在着一个巨大的Map,对Map的操作无非就是get和put,然后通过key操作这个key所对应的value,而这个value的类型可以多种多样,也就是Redis为我们提供的那些数据结构,比如字符串(String)原创 2021-12-31 01:24:20 · 1098 阅读 · 0 评论 -
【redis安装-单机】
Redis下载https://redis.io/download或者使用命名下载$ wget https://download.redis.io/releases/redis-6.2.6.tar.gz编译$ tar xzf redis-6.2.6.tar.gz$ cd redis-6.2.6$ make运行$ src/redis-server客户端测试您可以使用内置的客户端与 Redis 进行交互$ src/redis-cliredis> set foo barOK原创 2021-12-26 23:22:14 · 365 阅读 · 0 评论