redis分布式

高并发实战

折月煮酒 提交于 2020-02-09 10:43:21
高并发实战学习 参考书籍 Netty,Redis,ZooKeeper高并发实战 -- 作者 尼恩 代码链接https://gitee.com/sfasdfasdfsdf/netty_redis_zookeeper_source_code.git Netty netty是JBOSS提供的一个JAVA开源框架,是基于NIO的客户端/服务器编程框架,它既能开发高并发,高可用,高可靠性的网络服务器程序,也可以开发高可用,高可靠的客户端程序 Redis 一个可以快速存储的内存数据库,Redis是Remote Dictionary Server (远程字典服务器) 的缩写, 最初是作为数据库的工具来使用的. Zookeeper 协调分布式的组件 来源: https://www.cnblogs.com/MagicalFool/p/12286329.html

Redis简介及安装教程(Windows)

妖精的绣舞 提交于 2020-02-09 01:36:58
一、NoSQL 1.1 什么是NoSQL NoSQL(Not Only SQL),意思是不仅仅是SQL,是一项全新的数据库理念,泛指非关系型的数据库。 1.2 为什么需要NoSQL 对数据库高并发读写的需求 对海量数据的高效率存储和访问的需求 如果使用关系型数据库,在一个拥有几亿条数据的表中进行sql查询效率是是否低下的。 对数据库的高可扩展性和高可用性的需求 如果使用关系型数据库,那么例如现在数据库中存储着几百万条数据,但是由于需求的变更需要修改表的结构,这显然是行不通的。 NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其时大数据应用难题。 1.3 NoSQL的优点 易扩展 NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。 大数据量,高性能 NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。 灵活的数据模型 NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。 高可用 NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。 1.4 NoSQL数据库分类

redis的主从复制以及哨兵模式

。_饼干妹妹 提交于 2020-02-08 20:22:27
redis的安装 redis的安装包可以上官网下载 server1 172.25.13.1 server2 172.25.13.2 tar zxf redis-5.0.3.tar.gz #解压 yum install gcc -y #源码编译需要依赖 cd redis-5.0.3 make && makeinstall #安装 cd utils/ ./install_server.sh #启动脚本 netstat -tnlp #查看端口 redis主从复制 server1: vim /etc/redis/6379.conf #修改70行 systemctl restart redis_6379 #重启服务 netstat -tnlp #查看端口 server2: vim /etc/redis/6379.conf #修改文件 systemctl restart redis_6379 netstat -tnlp 测试: server1: server2: 哨兵模式 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。 提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel

Redis介绍

ぐ巨炮叔叔 提交于 2020-02-08 08:03:26
什么是NoSql 为了解决高并发、高可用、高可扩展,大数据存储等一系列问题而产生的数据库解决方案,就是NoSql。 NoSql,叫非关系型数据库,它的全名Not only sql。它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。 NoSql的分类 键值(Key-Value)存储数据库 相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB 典型应用:内容缓存,主要用于处理大量数据的高访问负载。 数据模型:一系列键值对 优势:快速查询 劣势:存储的数据缺少结构化 列存储数据库 相关产品:Cassandra, HBase, Riak 典型应用:分布式的文件系统 数据模型:以列簇式存储,将同一列数据存在一起 优势:查找速度快,可扩展性强,更容易进行分布式扩展 劣势:功能相对局限 文档型数据库 相关产品:CouchDB、MongoDB 典型应用:Web应用(与Key-Value类似,Value是结构化的) 数据模型:一系列键值对 优势:数据结构要求不严格 劣势:查询性能不高,而且缺乏统一的查询语法 图形(Graph)数据库 相关数据库:Neo4J、InfoGrid、Infinite Graph 典型应用:社交网络 数据模型:图结构 优势:利用图结构相关算法。 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

Redis

喜你入骨 提交于 2020-02-06 03:53:52
Redis Redis是NoSQL(非关系性数据库的一种) 安装Redis Redis 的官方下载站是 http://redis.io/download,可以去上面下载最新的安装程序 redis中文网站 http://redis.cn/ windows下的安装和使用 1.下载redis程序软件 使用redisbin32 或redisbin64 https://github.com/microsoftarchive/redis/releases 2.绿色软件,不需要安装,直接使用 3.启动redis服务(带配置文件启动,和不带配置文件启动) 直接点击redis-cli.exe是不带配置文件启动 4.连接到redis进行操作 cmd>{%redis%}/redis-cli -h ip地址 -p 端口号 ip 默认为本地 -p 默认6379 Redis集群&&分布式 集群:多个服务器 都去处理同一个业务 分布式:多个服务器 去处理不同的业务 redis为什么要集群 1.处理高并发 2.防止单点故障 3.处理大量数据 集群具备的特性 集群应该具有如下特性: 可扩展性 : 方便的增加集群中的机器 , 动态扩容缩容 高可用性 :从性能,相应等方面提升效率,不会挂掉,不相应结果 1.6.集群的能力 集群应该具备如下能力: 负载均衡 把请求根据某种算法相对平衡的路由到集群的应用 错误恢复

谈谈个人网站的建立(八)—— 缓存的使用

淺唱寂寞╮ 提交于 2020-02-05 03:09:57
欢迎访问我的网站 http://www.wenzhihuai.com/ 。感谢,如果可以,希望能在GitHub上给个star,GitHub地址 https://github.com/Zephery/newblog 。 一、概述  1.1 缓存介绍 系统的性能指标一般包括响应时间、延迟时间、吞吐量,并发用户数和资源利用率等。在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的SQL,MyBatis提供了一级缓存的方案优化这部分场景,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性能。 缓存常用语: 数据不一致性、缓存更新机制、缓存可用性、缓存服务降级、缓存预热、缓存穿透 可查看 Redis实战(一) 使用缓存合理性 1.2 本站缓存架构 从没有使用缓存,到使用mybatis缓存,然后使用了ehcache,再然后是mybatis+redis缓存。 步骤: (1)用户发送一个请求到nginx,nginx对请求进行分发。 (2)请求进入controller,service,service中查询缓存,如果命中,则直接返回结果,否则去调用mybatis。 (3)mybatis的缓存调用步骤:二级缓存->一级缓存->直接查询数据库。 (4)查询数据库的时候,mysql作了主主备份。 二、Mybatis缓存 2.1 mybatis一级缓存

Redis分布式集群实战(2)——搭建redis主从同步及哨兵模式

空扰寡人 提交于 2020-02-04 23:50:06
上一篇介绍了Redis基础知识,以及与mysql,memcached区别。此篇搭建Redis主从同步。 文章目录 一、Redis主从同步 1、主从复制概念 2、特点 3、实验 二、搭建哨兵模式 一、Redis主从同步 1、主从复制概念 主从复制模型中,有多个redis节点。 其中,有且仅有一个为主节点Master。从节点Slave可以有多个。 只要网络连接正常,Master会一直将自己的数据更新同步给Slaves,保持主从同步。 2、特点 (1)主节点Master可读、可写. (2)从节点Slave只读。(read-only) 因此,主从模型可以提高读的能力,在一定程度上缓解了写的能力。因为能写仍然只有Master节点一个,可以将读的操作全部移交到从节点上,变相提高了写能力。 实验环境: 本实验搭建主从同步,一主两备 server1虚拟机作主Redis缓存数据库 : ip为:172.25.76.1 关闭防火墙及selinux server2虚拟机作备Redis缓存数据库 : ip为:172.25.76.2 关闭防火墙及selinux server3虚拟机作备Redis缓存数据库 : ip为:172.25.76.3 关闭防火墙及selinux 3、实验 主Redis(server1)上: yum install -y gcc -y # 下载GNU编译器套件gcc tar zxf

Redis分布式集群实战(3)——搭建redis集群及redis集群中添加新结点

前提是你 提交于 2020-02-04 23:46:17
文章目录 一、redis集群简介 1、集群 2、redis集群 3、redis集群的优势 4、redis集群工作原理 5、哈希槽 6、容错 二、实验 实验环境: 2、搭建redis集群 3、redis集群中添加新结点 4、集群重新分片 (1)手动分配哈希槽 (2)自动平均分配哈希槽 5、移除节点 (1)移除从Slave节点 (1)移除Master节点 一、redis集群简介 1、集群 集群是一组相互独立的、通过高速网络互相联通的节点,构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群就是一个独立的服务器。 集群技术是一种通用的技术,其目的是为了解决单机运算能力的不足、IO能力的不足、提高服务的可靠性、获得规模可扩展能力,降低整体方案的运维成本(运行、升级、维护成本)。能在大流量访问下提供稳定的业务,集群化是存储的必然形态。 2、redis集群 Redis 集群是一个分布式(distributed)、容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset),提供在多个Redis节点之间共享数据的程序集。。 Redis 集群并不支持同时处理多个键的 Redis 命令,因为这需要在多个节点间移动数据,这样会降低redis集群的性能,在高负载的情况下可能会导致不可预料的错误。

大型分布式系统中的缓存架构

十年热恋 提交于 2020-02-04 22:37:02
大型分布式系统中的缓存架构 本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景。 缓存概述 缓存概述 缓存的分类 缓存主要分为四类,如下图: 缓存的分类 CDN 缓存 CDN(Content Delivery Network 内容分发网络)的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中。 在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。 应用场景:主要缓存静态资源,例如图片,视频。 CDN 缓存应用如下图: 未使用 CDN 缓存 使用 CDN 缓存 CDN 缓存优点如下图: 优点 反向代理缓存 反向代理位于应用服务器机房,处理所有对 Web 服务器的请求。 如果用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。 如果没有缓冲则先向 Web 服务器发出请求,取回数据,本地缓存后再发送给用户。通过降低向 Web 服务器的请求数,从而降低了 Web 服务器的负载。 应用场景:一般只缓存体积较小静态文件资源,如 css、js、图片。 反向代理缓存应用如下图: 反向代理缓存应用图 开源实现如下图: 开源实现 本地应用缓存 指的是在应用中的缓存组件,其最大的优点是应用和 Cache 是在同一个进程内部,请求缓存非常快速,没有过多的网络开销等。

数据库缓存层的优化

限于喜欢 提交于 2020-02-04 22:33:16
一、什么是数据库缓存 业务应用对Mysql产生的增删改查的操作造成了巨大的I/O开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类的问题,缓存概念就此产生 二、为什么使用缓存 1、极大地解决数据库服务器的压力 2、提高应用数据的响应速度 缓存需要考虑的内容 1、缓存方式的选择 2、缓存场景的选择 3、缓存数据的实时性(缓存的时间) 4、缓存数据的稳定性 三、使用MySql查询缓存(了解即可) 四、Redis和Memcache的对比 Memcache: Redis和Memcache的对比 1、性能相差不大 2、Redis增加了VM特性,突破物理内存的限制,Memcache可以修改最大的可用内存,采用LRU算法 3、Redis依赖客户端来实现分布式读取 4、Memcache本身没有数据沉余机制 5、Redis依赖快照进行持久化,aof增强了可靠性的同时,对性能有所影响; 6、Memcache不支持持久化,通常做缓存,提升性能; 7、Memcache在并发场景下,用cas保证一致性,redis事务支持比较弱,只能保证事务中每个操作的连续执行; 8、Redis支持多种数据类型 9、Redis用于数据量较小的高性能操作和运算上 10、Memcache用于动态系统中减少数据库负载,提升性能,适合做缓存,提高性能; 来源: https://www.cnblogs.com