1 gaobinzhan

尚未进行身份认证

我要认证

PHP developer.

等级
TA的排名 22w+

如何搭建redis-cluster

背景​ 假设在一台主从机器上配置了20G内存,但是业务需求是需要50G内存的时候,主从结构+哨兵可以实现高可用故障切换+冗余备份,但是不能解决数据容量的问题,用哨兵,每个redis实例存储的数据也都是完整的数据,浪费内存且有木桶效应。​ 为了最大化利用内存,可以采用cluster,就是分布式存储。即每台redis存储不同的内容。Redis分布式方案一般有两种:客户端分区方案:优点是分区逻辑可控,缺点是需要自己处理数据路由,实现高可用、故障转移等问题。比如在redis2.8之前通常的做法是获取某

2020-06-30 22:34:23

redis哨兵故障转移及实现

文章目录Sentinel命令Sentinel故障转移Sentinel实现原理三个定时任务主观下线和客观下线领导者选举方式如何选择“合适”的Slave节点Sentinel常见问题在上篇文章中docker-compose搭建redis-sentinel成功的搭建了1主2从3哨兵。Sentinel命令sentinel是一个特殊的redis节点,它有自己专属的api:sentinel masters 显示被监控的所有master以及它们的状态。sentinel master <master n

2020-06-22 14:09:55

docker-compose搭建redis-sentinel

文章目录主从复制的问题哨兵机制的原理docker-compose 实现 redis-sentinel主从复制的问题​ 对于上篇文章redis持久化rdb及aof中,redis服务器重启时的数据恢复,在新版本中是不符合我画的那个流程图的。​ redis启动的时候会去判断是否开启aof,如果开启了,不存在aof文件的话,会去判断是否存在rdb,但在新的版本中,如果开启aof,不存在aof文件的时候,redis会主动创建aof文件并且加载aof,这就会导致数据丢失。解决方案如下:关闭aof启动redi

2020-06-20 01:10:48

php反射实现Ioc/Di及注解

​ PHP5之后提供了完整的反射API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。此外,反射API提供了方法来取出函数、类和方法的文档注释。Ioc/Di大家应该都不陌生,但是对小白来说呢听起来就挺高大上的,下面就用代码来实现:<?php/** * @author gaobinzhan <gaobinzhan@gmail.com> */class Foo{ public function getClassName() { ret

2020-06-08 23:47:49

redis持久化rdb及aof

为什么要开启redis持久化及如何去做redis备份

2020-06-07 19:27:12

redis之主从问题处理

redis如何规避复制风暴问题

2020-06-05 15:05:29

redis主从之全量复制及增量复制

文章目录主从注意事项拓扑图一主一从一主多从树状主从原理数据同步主从注意事项在之前我写了一篇docker实现redis主从复制的文章,点击进入对于主从复制的好处,在上篇文章我也写了,下面说一下注意事项。注意事项:安全对于数据比较重要的节点,主节点会通过设置requirepass参数进行密码验证,这时候所有的客户端访问必须使用auth命令进行验证。从节点与主节点的复制链接是通过一个特殊标识的客户端来完成。因此需要配置从节点的masterauth参数与主节点密码保持一致,这样从节点才可以正确地

2020-06-04 00:15:22

Go常见架构模式的实现

Go常见的架构模式,实现pipe-filter framework 和 micro-kernel framework

2020-05-31 16:55:36

Go反射编程

reflect.TypeOf vs. reflect.ValueOf:reflflect.TypeOf 返回类型 (reflflect.Type)reflflect.ValueOf 返回值 (reflflect.Value)可以从 reflflect.Value 获得类型通过 kind 的来判断类型func CheckType(v interface{}) { t := reflect.TypeOf(v) switch t.Kind() { case reflect.Float32, r

2020-05-31 00:37:19

Go单元测试及Benchmark

单元测试之前在刚开始写了如何编写测试程序。内置单元测试框架:Fail, Error: 该测试失败,该测试继续,其他测试继续执⾏FailNow, Fatal: 该测试失败,该测试中⽌,其他测试继续执⾏代码覆盖率go test -v -cover断言https://github.com/stretchr/testifyfunc TestErrorInCode(t *testing.T) { fmt.Println("Start") t.Error("Error") f

2020-05-24 20:47:37

Go典型并发任务

Go典型并发任务及对象池

2020-05-23 19:44:28

Go并发编程

Go并发编程,协程机制,CSP并发,多路选择和超时控制,channel的关闭和广播,Context与任务取消

2020-05-21 23:58:30

Go包和依赖管理

Go实现可复用的包及依赖管理

2020-05-20 10:24:48

Go编写好的错误处理

Go编写好的错误处理 panic及recover

2020-05-18 23:21:19

Go面向对象编程

Go行为定义、扩展及复用、多态

2020-05-17 18:36:20

Go的函数及可变参数和defer

Go的函数及可变参数和defer

2020-05-16 15:48:07

Go字符串

Go字符串及常用函数

2020-05-14 23:22:58

Go常用集合

Go数组、切片、Map集合

2020-05-13 23:08:51

Go基本程序结构

Go变量常量、数据类型、运算符、条件和循环

2020-05-11 23:28:12

Hello,Go

文章目录简简单单了解Go编写第一个go程序简简单单了解GoGo的特点只有25个关键字强类型语言垃圾回收指针直接访问内存开发环境构建1.8之前必须设置1.8之后没用设置,将使用默认值扩展名必须为go编写第一个go程序hello.gopackage main // 包,表明代码所在的模块import ( "fmt") // 引入代码依赖// 功能实现func main() { fmt.Println("Hello, World!")}两种运行方式:go

2020-05-10 20:59:28

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。