阅读目录 发布订阅模型 Redis中的发布订阅 客户端编程示例 0.3版本Hredis 发布订阅模型 在应用级其作用是为了减少依赖关系,通常也叫观察者模式.主要是把耦合点单独抽离出来作为第三方,隔离易变化的发送方和接收方. 发送方:只负责向第三方发送消息.(杂志社把读者杂志交给邮局) 接收方:被动接收消息.(1:向邮局订阅读者杂志,2:门口去接邮过来的杂志) 第三方作用是:存储订阅杂志的接收方,并在杂志过来时送给接收方. (邮局) C#示例,发送方把杂志放到邮局里面: if (QA.AddBug…
一 .Redis的五大数据类型 1.String(字符串) string是redis最基本的数据类型,可以理解成与 Memached一模一样的数据类型,一个key对应一个value. string 类型是二进制安全的.意思是redis的String可以包含任何数据.比如jpg的图片或者序列化的对象. string类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M. 2.Hash(哈希,类似java里的Map) Redis Hash是一个键值对集合. Redis…
  1,快照持久化 1简介      redis可以通过创建快照来获得某个时间点上的内存内容的数据副本,有了副本之后,就可以将副本发送到其他redis服务器上从而创建相同数据的从服务器,同时快照留在原地以便重启redis的时候实现数据恢复. 2配置      save 60 1000  快照生成策略  如果服务器距离上一次成功生成快照已经超过六十秒,并且期间执行了至少1000次写操作.      stop-writes-on-bgsave-error yes 创建快照文件失败后是否继续执行写命令…
缓存雪崩 概念 缓存雪崩是由于原有缓存失效(过期),新缓存未到期间.所有请求都去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机.从而形成一系列连锁反应,造成整个系统崩溃. 解决方案 加锁排队 一般并发量不是特别多的时候,使用最多的解决方案是加锁排队. public object GetProductListNew() { const int cacheTime = 30; const string cacheKey = "product_list"; const…
前言 前面介绍了redis持久化和容灾备份,这篇会介绍redis主从复制和redis持久化在主从复制中的一些应用.因为本人没有那么多服务器或机器,所以这里主要介绍下如何在docker容器中搭建主从复制以及搭建过程中遇到的一些问题.关于redis的深入讲解,这边博客<深入学习Redis(3):主从复制>介绍的非常详细,有兴趣的可以学习一下. 主从复制运行的机制 当一个 master 实例和一个 slave 实例连接正常时, master 会发送一连串的命令流来保持对 slave 的更新,以便于将…
一.主从复制 主从复制:主节点负责写数据,从节点负责读数据,从而实现读写分离,提高redis的高可用性. 让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主节点(master),而对主服务器进行复制的服务器则被称为从节点(slave), 如下图所示: 主从复制的特点: 1.一个master可以有多个slave 2.一个slave只能有一个master 3.数据流向是单向的,master到slave 主从复制的作用: 1.数据副本:多一份或多份数据拷贝,保证redis…
一.Redis主从复制作用 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式. 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复:实际上是一种服务的冗余. 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务 (即写 Redis 数据时应用连接主节点,读 Redis 数据时应用连接从节点),分担服务器负载:尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量. 高可用基石:除了上述作用…
reids事务 概念 可以一次执行多个命令,本质是一组命令的集合.一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞 作用 一个队列中,一次性.顺序性.排他性的执行一系列命令 常用命令 正常操作事务: 放弃事务: 其实redis对于事务是部分支持: 例如incr k1虽然是错误的(类似于java的运行时异常),但是其他几个结果依然可以成功操作. watch监控 悲观锁/乐观锁/CAS(Check And Set) 1.悲观锁 悲观锁(Pessimistic Lock…
本文转载自编程迷思,原文链接 深入学习Redis(1):Redis内存模型 前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串.哈希.列表.集合.有序集合),丰富的类型是Redis相对于Memcached等的一大优势.在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: 1.估算R…
目录 redis入门(三) 目录 前言 事务 原理 Lua脚本 安装 脚本命令 集群搭建工具 redis-trib.rb redis官方集群搭建 集群横向扩展 故障转移 redis管理 参考文档 redis入门(三) 目录 redis入门(一) redis入门(二) redis入门(三) 前言 在前两章介绍了Redis的一些常用的API与功能,在本章会对一些其他功能包括事务.脚本.Redis集群搭建工具以及集群动态扩容与故障转移方式进行讲解. 事务 在关系型数据库,我们可以通过事务(transa…
1.Units单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感 2.INCLUDES包含 和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他 3.GENERAL通用 daemonize. pidfile.port : 参考文章末尾的通用配置. tcp-backlog: 设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握…
redis+Keepalived实现Redis主从复制: 环境:CentOs6.5Master: 10.10.10.203Slave:   10.10.10.204Virtural IP Address (VIP): 10.10.10.205 所需软件:keepalived-1.2.12.tar.gzredis-2.8.7.tar.gz 实现功能:当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby:当 Master 挂掉,Slave 正常时, S…
前言 在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化. 在Redis的持久化中曾提到,Redis高可用的方案包括持久化.主从复制(及读写分离).哨兵和集群.其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份):而主从复制则侧重解决数据的多机热备.此外,主从复制还可以实现负载均衡和故障恢复. 这篇文章中,将详细介绍Redis主从复制的方方面面,包括:如何使用主从复制.主从复制的原理(重点是全量复制和部分复制.以及心跳机制).实际应用中需要注意的问题(如数…
1.Redis复制的原理和优化 1.1 Redis单机的问题 1.1.1 机器故障 在一台服务器上部署一个Redis节点,如果机器发生主板损坏,硬盘损坏等问题,不能在短时间修复完成,就不能处理Redis操作了,这就是单机可能存在的问题 同样的,服务器正常运行,但是Redis主进程发生宕机事件,此时只需要重启Redis就可以了.如果不考虑在Redis重启期间的性能损失,可以考虑Redis的单机部署 Redis单机部署出现故障时,把Redis迁移到另一台服务器上,此时需要把发生故障的Redis中的数…
一.mysql(mariadb)基础 1.基础命令(centos7操作系统下) 1.启动mysql systemctl start mariadb 2.linux客户端连接自己 mysql -uroot -p -h 127.0.0.1 -u 用户 -p 密码验证 -h 连接的主机地址 3.远程链接mysql服务端 mysql -uroot -p -h 192.168.3.115 4.修改mysql密码 # 修改当前用户的密码 set password = PASSWORD('mariadb123…
一:redis 虽然是一个内存级别的缓存程序,即redis 是使用内存进行数据的缓存的,但是其可以将内存的数据按照一定的策略保存到硬盘上,从而实现数据持久保存的目的,redis支持两种不同方式的数据持久化保存机制,分别是RDB和AOF,具体实现如下: 1.1:redis数据持久化概括:redis 支持两种数据持久保存方式,分别是RDB和APFRDB可以设置在多长时间内有多少个key发生变化就执行RDB快照.AOF持久化是服务器记录和保存redis执行的所有命令,并在服务重启的时候重新执行全部的命…
1. Redis事务 Redis不支持事务,此事务不是关系型数据库中的事务: Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断. Redis事务的主要作用就是串联多个命令防止别的命令插队: Multi(组队阶段).Exec.discard 从输入Multi命令开始,输入的命令都会依次进入命令队列中(开始组队),但不会执行,至到输入Exec后,Redis会将之前的命令队列中的命令依次执行. 组队的过程中可以通过…
转载:http://blog.csdn.net/u010359884/article/details/50310387 最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路. 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品:将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确. 一些可能的实现 刚才…
redis设置密码和redis主从复制 一.redis设置密码 1.Redis实用特性 安全性  主从复制(侦听器)事务处理 持久化机制 发布订阅消息 2.安全性:设置客户端连接后进行任何其他指定前需要使用的密码 打开配置文件redis.conf 在requirepass foobared下一行加 requirepass beijinig(你要设置的密码) 退出配置文件 在进入redis命令时使用auth 密码 解码: 二.redis主从复制 1.进入配置文件vi redis.conf: 1)/…
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注左上角编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis的主从复制?哨兵机制? 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学.我们一起巩固.突击面试官常问的一些面试题,加油!! <[面试突击]— Redis篇>--Redis数据类型?适用于哪些场景? <[面试突击]— Redis篇>--Redis的线程模型了解吗?为啥单线程效…
在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性.可靠性要求较高,则需要引入Redis的集群方案.虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案. Redis支持三种集群方案 主从复制模式 Sentinel(哨兵)模式 Cluster模式 主从复制模式 1. 基本原理 主从复制模式中包含一个主数据库实例(master)与一个或多个从数据库实例(sl…
前言 现在遇到高并发场景时,缓存技术应该算是性能优化的第一步,缓解数据库压力的同时还能提高访问效率,而Redis应该是绝大多数应用场景的首选.但是尽快Redis性能再优秀,在当今高并发场景下,一台服务器负责读写,机器的性能和内存的瓶颈肯定避免不了,到这肯定有小伙伴会想到集群, 对的,思路没错,只是在集群之前,主从复制模式的优化策略能解决很多问题,如果主从模式还抗不住高并发,那再来集群也不晚:这里先来说说Redis的主从复制. 为了更好的演示,搞了一台云服务器,Linux环境: 方便的同时,也能更…
一.安装部署 1.常规安装 1.安装 # wget http://download.redis.io/releases/redis-3.0.7.tar.gz # tar xf redis-3.0.7.tar.gz # cd redis-3.0.7 # make PREFIX=/usr/local/redis install # cp redis_init_script /etc/init.d/redis # chmod +x /etc/init.d/redis 2.修改配置文件1) 修改启动脚本…
转载:http://www.tuicool.com/articles/aQbQ3u Part I. 直接启动 下载 官网下载 安装 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 编译 make #可使用root用户执行`make install`,将可执行文件拷贝到/usr/local/bin目录下.这样就可以直接敲名字运行程序了. make install 启动 #加上`&`号使redis以后台程序方式运行 ./redis-server…
一 简介 安装使用centos 5.10 Master 192.168.235.135 Slave 192.168.235.152 Vip 192.168.235.200 编译环境 yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby: 当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭…
本篇文章介绍下redis排序命令.redis支持对list,set和sorted set元素的排序.排序命令是sort 完整的命令格式如下: SORT key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey]  下面我们一一说明各种命令选项 (1)sort key 这个是最简单的情况,没有任何选项就是简单的对集合自身元素排序并返回排序结果.下面给个例子 redis> lpush ml…
一.Redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型. 二.Redis使用场景 为什么使用Redis: 解决应用服务器的cpu和内存压力 减少io的读操作,减轻io的压力 关系型数据库的扩展性不强,难以改变表结…
https://www.cnblogs.com/wxd0108/p/5798498.html 前言 redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用.现在的2.x的稳定版本是2.8.19,也是我们项目中普遍用到的版本. redis在年初发布了3.0.0,官方支持了redis cluster,也就是集群.至此结束了redis 没有官方集群的时代,之前我们用redis cluster用的最多的应该是twitter 发布的Twemproxy(https://…
Redis主从复制(master-slaves配置)可以更好地读写分离 先关防火墙 主(master)服务器先不做任何操作, 进入从(slave)服务器, redis-3.2.1目录下的redis.conf是redis的配置文件,打开这个配置文件, 修改bind参数为0.0.0.0(master服务器的redis的配置文件也要修改bind参数为0.0.0.0),这是为了使所有主机都可以访问 在redis.conf文件里加上slaveof master服务器的ip地址 master服务器中redi…
一Redis 连接 Redis 连接命令主要是用于连接 redis 服务. 实例 以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行: redis 127.0.0.1:6379> AUTH "password" OK redis 127.0.0.1:6379> PING PONG 下表列出了 redis 连接的基本命令: 序号 命令及描述 1 AUTH password 验证密码是否正确 2 ECHO message 打印字符串 3 PING…