redis分布式

redis笔记之一

让人想犯罪 __ 提交于 2020-01-06 15:32:49
NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中。而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要NoSQL 主要传统的关系型数据库暴露了许多问题 1.对数据库高并发读写的需求 高并发就是同一时间有许多用户访问同一网站造成访问量太大容易造成服务器崩溃,而传统的解决方法就是搭建集群,通俗的讲就是原先一个服务器提供服务,现在变成多个服务器提供服务 2.高负载-对海量数据的高效率存储和访问的需求 通俗的讲就是数据量非常大,造成没地方存储或者访问查询sql的语句超过上千万造成查询非常低下 3.高扩展-对数据库的高可扩展性和高可用性的需求 通俗的讲相当于银行窗口排队,刚开始一个窗口不能满足需求,后来增加多个窗口,而增加窗口不会造成业务上的不同,也就是集群起来很方便 主流的NoSQL产品 主要有四大类 1.键值(key-value)存储数据库 主流产品:redis 典型应用:内容缓存,主要用于处理大量数据的高访问负载 优势:快速查询 劣势:存储的数据缺少结构化 2.列存储数据库 主流产品:HBase 典型应用:分布式的文件系统 优势:查询速度快,可扩展性强,更容易进行分布式扩展 劣势:功能相对局限 3.文档数据库 主流产品:MongoDB 典型应用:web应用 优势:数据结构要求不严格 劣势

redis基础及配置文件详解

孤街浪徒 提交于 2020-01-06 12:30:49
一、redis部署与使用 redis 基础 官网地址https://redis.io/ Redis和 Memcached 是非关系型数据库,也称为NoSQL数据库 ,MySQL 、 Mariadb 、 SQL S erver 、 PostgreSQL 、Oracle 数据库 属于关系型数据 RDBMS, Relational Database Management System redis 简介 Redis (Remote Dictionary S erver 在 2009 年 发布 开发者 Salvatore Sanfilippo 是意大利 开发者他本想为自己 的 公司开发一个用于替换 MySQL 的产品 Redis ,但是没有想到 他把 Redis 开源后大受 欢迎,短短几年, Redis 就 有了很大的用户群体,目前 国内外 使用的公司有 知乎网 、新浪微博、 GitHub 等; redis 是 一个 开源 的、 遵循 BSD 协议 的、 基于 内存 的 而且目前 比较 流行的 键值数据库 key value database是 一个非关系型数据库 redis 提供 将内存 通过 网络远程共享的一种服务 , 提供 类似功能的还 有memcache,但 相比 memcache redis 还提供了 易 扩展 、高性能 、 具备 数据持久性 等功能。 Redis 在高并发

redis主从,哨兵回忆手册

无人久伴 提交于 2020-01-06 06:21:08
redis主从   持久化的开启与主从集群是否生效无关系   Slave Server同样是以 非阻塞的方式完成数据同步 。在同步期间,如果有客户端提交查询请求, Redis则返回同步之前的数据(注意初次同步则会阻塞) 。 Replication的工作原理: 如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。 缺点主节点挂了,那么就只能提供读操作了。 应用示例: 这里我们假设Master-Slave已经建立。 #启动master服务器。 [root@Stephen-PC redis]# redis-cli -p 6379 redis 127.0.0.1:6379> #清空Master当前数据库中的所有Keys。 redis 127.0.0.1:6379> flushdb OK #在Master中创建新的Keys作为测试数据。 redis 127.0.0.1:6379> set mykey hello OK redis 127.0.0.1:6379> set mykey2 world OK #查看Master中存在哪些Keys。 redis 127.0.0.1:6379> keys * 1) "mykey" 2) "mykey2" #启动slave服务器。 [root@Stephen-PC redis

Spring 极速集成注解 redis 实践

笑着哭i 提交于 2020-01-06 05:50:37
Redis 做为基于内存的 Key-Value 数据库,用来做缓存服务器性价比相当高。 官方推出的面向 Java 的 Client Jedis,提供了很多接口和方法,可以让 Java 操作使用 Redis。 Spring 团队对 Jedis 进行了封装,独立为 spring-data-redis 项目,配合 spring 特性并集成 Jedis 的一些命令和方法。 本文重点描述集成过程,能让你迅速的通过 spring-data-redis 将 redis 集成到 spring 项目中,毕竟大家都忙的。 1. 添加项目依赖 <!--redis 缓存--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.4.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> 2. 添加 spring-redis-context 配置 <?xml version="1.0"

scrapy-redis使用详解

☆樱花仙子☆ 提交于 2020-01-05 05:24:08
描述: 1.使用两台机器,一台是win10,一台是centos7,分别在两台机器上部署scrapy来进行分布式抓取一个网站 2.centos7的ip地址为192.168.1.112,用来作为redis的master端,win10的机器作为slave 3.master的爬虫运行时会把提取到的url封装成request放到redis中的数据库:“dmoz:requests”,并且从该数据库中提取request后下载网页,再把网页的内容存放到redis的另一个数据库中“dmoz:items” 4.slave从master的redis中取出待抓取的request,下载完网页之后就把网页的内容发送回master的redis 5.重复上面的3和4,直到master的redis中的“dmoz:requests”数据库为空,再把master的redis中的“dmoz:items”数据库写入到mongodb中 6.master里的reids还有一个数据“dmoz:dupefilter”是用来存储抓取过的url的指纹(使用哈希函数将url运算后的结果),是防止重复抓取的 安装redis( http://blog.fens.me/linux-redis-install/ ) windows安装redis 下载地址: https://github.com/rgl/redis/downloads

redis笔记之一

孤街浪徒 提交于 2020-01-04 01:11:55
NoSQL简介 全称是Not Only SQL,泛指菲关系型数据库,它是通过键值对存储数据并且将数据存储在内存中。而像mysql,sql server这些通过关系表存数据的就叫关系型数据库 为什么需要NoSQL 主要传统的关系型数据库暴露了许多问题 1.对数据库高并发读写的需求 高并发就是同一时间有许多用户访问同一网站造成访问量太大容易造成服务器崩溃,而传统的解决方法就是搭建集群,通俗的讲就是原先一个服务器提供服务,现在变成多个服务器提供服务 2.高负载-对海量数据的高效率存储和访问的需求 通俗的讲就是数据量非常大,造成没地方存储或者访问查询sql的语句超过上千万造成查询非常低下 3.高扩展-对数据库的高可扩展性和高可用性的需求 通俗的讲相当于银行窗口排队,刚开始一个窗口不能满足需求,后来增加多个窗口,而增加窗口不会造成业务上的不同,也就是集群起来很方便 主流的NoSQL产品 主要有四大类 1.键值(key-value)存储数据库 主流产品:redis 典型应用:内容缓存,主要用于处理大量数据的高访问负载 优势:快速查询 劣势:存储的数据缺少结构化 2.列存储数据库 主流产品:HBase 典型应用:分布式的文件系统 优势:查询速度快,可扩展性强,更容易进行分布式扩展 劣势:功能相对局限 3.文档数据库 主流产品:MongoDB 典型应用:web应用 优势:数据结构要求不严格 劣势

scrapy抓取拉勾网职位信息(七)——实现分布式

╄→尐↘猪︶ㄣ 提交于 2020-01-03 02:59:19
上篇我们实现了数据的存储,包括把数据存储到MongoDB,Mysql以及本地文件,本篇说下分布式。 我们目前实现的是一个单机爬虫,也就是只在一个机器上运行,想象一下,如果同时有多台机器同时运行这个爬虫,并且把数据都存储到同一个数据库,那不是美滋滋,速度也得到了很大的提升。 要实现分布式,只需要对settings.py文件进行适当的配置就能完成。 文档时间: 官方文档 介绍如下: Use the following settings in your project: # Enables scheduling storing requests queue in redis. SCHEDULER = "scrapy_redis.scheduler.Scheduler" # Ensure all spiders share same duplicates filter through redis. DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" # Default requests serializer is pickle, but it can be changed to any module # with loads and dumps functions. Note that pickle is not

Redis入门

此生再无相见时 提交于 2020-01-02 01:23:26
Redis系列 作者Mr.Chen,转载请注明博客出处: http://www.cnblogs.com/cjh-notes/ Redis的特性 在读写速度上性能极高 支持5种数据类型,String、List、Set、Hash、Sorted Set 支持多种编程语言:java、php、python、ruby、lua等 可实现高可用性以及分布式 Redis安装与配置 Windows版: https://github.com/MSOpenTech/redis/releases Linux版: https://redis.io/download 安装方法都比较简单这里就不截图说明了,本系列使用Linux版做示例: 文件目录 Prefix = /redis-4.0.8 服务端:${Prefix}/src/redis-server,启动方法 ./redis-server ../redis.conf 客户端:${Prefix}/src/redis-cli,启动方法 ./redis-cli –p port –h host 配置文件:${Prefix}/redis.conf 注意点:启动redis-server最好带上配置文件路径,否则可能会不生效 配置文件部分参数说明: daemonize no:守护进程,默认是不开启no port 6379:监听端口 bind 127.0.0.1

Redis主从同步、哨兵、集群

拜拜、爱过 提交于 2020-01-02 00:02:32
什么是主从同步(复制) 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。 主从复制的作用 数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。 读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量; 高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。 Redis之主从同步的实现原理 1.当从库和主库建立ms(master和slave)关系后,会向主库发送sync命令。 2.收到SYNC命令的主服务器执行BGSAVE命令

redis笔记⑤——redis集群

我们两清 提交于 2020-01-01 13:50:22
Redis Cluster高可用集群 概述 redis cluster集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特 性。 Redis cluster集群不需要sentinel哨兵节点也能完成节点移除和故障转移的功能。需要将每个节点 设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到 1000节点。 redis cluster集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单,其架构如下图所示: 集群的搭建 redis集群的搭建分两种方法,一种是原生的方法搭建,一种是使用redis提供的rb脚本搭建。 原生搭建 这里搭建四个节点的集群,两个主节点,两个从节点,首先还是配置每个redis节点,同样也是通过redis.conf文件配置。 配置节点 各个节点大部分配置还是和之前主从模式的节点配置差不多。 这里绑定的ip是我使用的虚拟机的ip,这样我的本机也是可以访问的 还是尽量减少RDB持久化的发生 同样如果我们配置了redis的密码还是要设置密码,不过不需要配置主机节点 接着开启集群模式 配置它的集群信息文件 打开这个配置 这个属性配置为no,这个配置的意思是在某一个节点出现问题挂掉的时候,如果配置no这个节点不可用,但其他节点可用,如果配置yes,代表整个集群都不可用,直到故障转移结束。 启动节点 启动节点