redis分布式

基于Scrapy分布式爬虫打造搜索引擎

眉间皱痕 提交于 2020-01-28 00:45:47
一,学习目的 获取想要的知识 二,环境配置和基础知识铺垫 1.pycharm 的安装和简单使用 ide : pycharm 数据库:mysql , redis , elasticsearch 开发环境:virtualenv 2.mysql 和navicat的安装和使用 windows下安装python 虚拟环境的安装和配置 3级标题 爬取真实数据 Scrapy 突破反爬虫技术 Scrapy进阶开发 Scrapy redis分布式爬虫 elasticsearch django 实现搜索引擎 2级标题 来源: CSDN 作者: shlshlshk 链接: https://blog.csdn.net/shlshlshk/article/details/104095728

redis面试题

拥有回忆 提交于 2020-01-27 20:27:01
1.什么是redis?    Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点      01.Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。    02.Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。    03.Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。 3.redis的优点?    (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O

Redis-Cluster+ElatisSearch

馋奶兔 提交于 2020-01-27 03:24:10
1.redis集群 1.1、什么叫集群 集群就是:很多服务器组成的一个网络。指的是将多台服务器集中在一起,实现同一业务。 1.2、什么是分布式 分布式就是:把业务拆分开,分布到不同服务器(理解),往往集群都是伴随的分布式。 为什么需要集群: (1)解决单点故障 ​(2)处理高并发 ​(3)处理大数据(高并发) --解决存储问题 1.3、分布式和集群的区别 相同点: 都是处理高并发,而且都需要多台服务器协同.一般在一个系统中同时存在分布式和集群. 不同点: 分布式中不同服务器处理是不同业务.而集群处理时同一业务. 2.Redis集群方案选择 2.1、主从复制 优点: 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离 缺点: Redis不具备自动容错和恢复功能,如果想具备自动重起 ,需要安装插件 2.2、哨兵模式 优点: 主从复制优点都在, 通过哨兵自动恢复 缺点: 比较难扩容,服务占用空间比较多 2.3、 Redis-Cluster集群 Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。其redis-cluster架构图如下: 3.搭建redis-cluster (1) 拷贝6个redis 分别命名为 6379-6384 (2) 修改配置 port 6379 cluster-enabled yes cluster

redis集群搭建笔记

独自空忆成欢 提交于 2020-01-26 14:44:12
确保你的redis单机版已经搭建成功, 可以运行 现在尝试搭建集群 redis集群中至少应该有三个节点. 要保证集群的高可用, 需要每个节点有一个备份机. redis集群至少需要6台服务器. 条件不够,我们搭建伪分布式. 可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006 建议保存快照, 如果操作失误, 可以恢复重新操作!! ● 在 /usr/local 下创建redis-cluster文件夹 ● 把usr/local目录下redis/bin中的文件复制一份到redis-cluster中并命名为redis01 (这个redis是单机版的redis的目录) ● 修改redis01中的redis.conf, 找到port **** 修改为 port 7001,找到cluster-enabled no 改为yes, 我的是修改过后的 ● 修改完成后, 把redis01在同一目录下拷贝五份, 分别修改redis02-redis06里面的redis.conf, 把port改为7002-7006 ● 然后启动redis01-redis06, 一个一个启动太麻烦, 可以用批处理 在redis-cluster文件夹下创建一个.sh的文件用来批量启动redis ● redis_start-all.sh内容如下,注意cd与…之间的空格 ●

Redis入门

心已入冬 提交于 2020-01-26 00:56:38
Redis介绍 什么是Redis? Redis 是用 C语言 开发的一个 开源 的高性能 键值对 (key-value) 内存数据库 。 它提供 五种数据类型 来存储值:字符串类型、散列类型、列表类型、集合类型、有序集合类型 它是一种 NoSQL 数据库。 什么是NoSQL? NoSQL,即Not-Only SQL(不仅仅是SQL),泛指 非关系型的数据库 。 什么是 关系型 数据库?      数据结构是一种有行有列的数据库 NoSQL数据库是为了解决 高并发、高可用、高可扩展、大数据存储 问题而产生的数据库解决方案。 NoSQL可以作为关系型数据库的良好补充,但是 不能替代关系型数据库. NoSQL数据库分类 n 键值(Key-Value)存储数据库   相关产品: Tokyo Cabinet/Tyrant、 Redis 、Voldemort、Berkeley DB   典型应用: 内容缓存,主要用于处理大量数据的高访问负载。   数据模型: 一系列键值对   优势: 快速查询   劣势: 存储的数据缺少结构化 n 列存储数据库   相关产品:Cassandra, HBase , Riak   典型应用:分布式的文件系统   数据模型:以列簇式存储,将同一列数据存在一起   优势:查找速度快,可扩展性强,更容易进行分布式扩展   劣势:功能相对局限 n 文档型数据库  

redis5.0集群搭建

怎甘沉沦 提交于 2020-01-24 02:56:33
至少需要3个master节点,这里搭建三个master节点,并且给每个master节点在搭建一个slave节点,共6个redis节点,这里采用一台机器上创建6个redis实例,并将6个redis实例配置成集群模式,所以这里是伪集群模式,当然真正的分布式集群的配置方法几乎一样,搭建伪集群的步骤如下 基于 centos7搭建单机redis5.0 # 第一步,在/usr/local下创建文件夹redis-cluster ,然后在其下面分别创建6个文件夹如下 mkdir -p /usr/local/redis-cluster cd /usr/local/redis-cluster/ mkdir 8001 8002 8003 8004 8005 8006 # 第二步:把之前redis.conf配置文件copy到8001下,修改如下内容 1. daemonize yes 2. port 8001 (分别对应每个机器的端口号进行设置) 3. bind 192.168.222.129 (必须要绑定当前机器的ip,这里方便redis集群定位机器,不绑定可能会出现循环查找集群节点机器的情况) 4. dir /usr/local/redis-cluster/8001/ (指定数据文件存放位置,必须指定不同的目录位置,不然会丢失数据) 5. cluster-enabled yes (启动集群模式) 6.

redis安装等

偶尔善良 提交于 2020-01-24 00:37:38
redis安装 https://github.com/MSOpenTech/redis/releases 选择64位 打开安装位置输入redis-server.exe redis.windows.conf (或者放到环境变量),后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的 这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。 切换到 redis 目录下运行:redis-cli.exe -h 127.0.0.1 -p 6379 设置获取键值对 set myKey abc get myKey 输入 info 命令可看到该redis的版本 学习链接: https://zhuanlan.zhihu.com/p/52931220 SSM理论: SSM框架,是Spring+SpringMVC+Mybatis的缩写,是继承SSH框架之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级的应用系统 RabbitMQ RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用。 来源: CSDN

RabbitMQ与Redis队列对比

孤者浪人 提交于 2020-01-23 01:09:16
RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 Redis 是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。 具体对比 : 可靠消费 Redis:没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理 RabbitMQ:具有消息消费确认,即使消费者消费失败,也会自动使消息体返回原队列,同时可全程持久化,保证消息体被正确消费 可靠发布 Reids:不提供,需自行实现 RabbitMQ:具有发布确认功能,保证消息被发布到服务器 高可用 Redis:采用主从模式,读写分离,但是故障转移还没有非常完善的官方解决方案 RabbitMQ:集群采用磁盘、内存节点,任意单点故障都不会影响整个队列的操作 持久化 Redis:将整个Redis实例持久化到磁盘 RabbitMQ:队列,消息,都可以选择是否持久化 消费者负载均衡 Redis:不提供,需自行实现 RabbitMQ:根据消费者情况,进行消息的均衡分发 队列监控 Redis:不提供

初识Redis(一)

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-21 19:33:31
什么是 Redis ? Redis是一个开源的使用ANSI C语言编写、支持网络、可基于 内存 亦可持久化的 日志 型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由 VMware 主持。 它提供五种数据类型来存储值:字符串类型、散列类型、列表类型、集合类型、有序集合类型 它是一种NoSQL数据库。 为什么要使用Redis? Redis都可以干什么事儿: 缓存,毫无疑问这是Redis当今最为人熟知的使用场景。再提升服务器性能方面非常有效; 排行榜,如果使用传统的关系型数据库来做这个事儿,非常的麻烦,而利用Redis的SortSet数据结构能够非常方便搞定; 计算器/限速器,利用Redis中原子性的自增操作,我们可以统计类似用户点赞数、用户访问数等,这类操作如果用MySQL,频繁的读写会带来相当大的压力;限速器比较典型的使用场景是限制某个用户访问某个API的频率,常用的有抢购时,防止用户疯狂点击带来不必要的压力; 好友关系,利用集合的一些命令,比如求交集、并集、差集等。可以方便搞定一些共同好友、共同爱好之类的功能; 简单消息队列,除了Redis自身的发布/订阅模式,我们也可以利用List来实现一个队列机制,比如:到货通知、邮件发送之类的需求,不需要高可靠,但是会带来非常大的DB压力,完全可以用List来完成异步解耦;

Memcached、Redis OR Tair

痞子三分冷 提交于 2020-01-21 03:43:38
一、前言   非关系型数据库(NoSQL = Not Only SQL)的产品非常多,常见的有Memcached、Redis、MongoDB等优秀开源项目,相关概念和资料网上也非常丰富,不再重复描述,本文主要引入Memcached和Redis与淘宝开源Tair分布式存储进行对比测试,由于各自适用场景不同,且每个产品的可配置参数繁多, 涉及缓存策略、分布算法、序列化方式、数据压缩技术、通信方式、并发、超时等诸多方面因素,都会对测试结果产生影响 ,单纯的性能对比存在非常多的局限性和不合理性,所以不能作为任何评估依据,仅供参考,加深对各自产品的理解。以下是一些基本认识:   1、尽管 Memcached 和 Redis 都标识为Distribute,但从Server端本身而言它们并不提供分布式的解决方案,需要Client端实现一定的分布算法将数据存储到各个节点,从而实现分布式存储,两者都提供了Replication功能(Master-Slave)保障可靠性。   2、Tair 则本身包含 Config Server 和 Data Server 采用一致性哈希算法分布数据存储,由ConfigSever来管理所有数据节点,理论上服务器端节点的维护对前端应用不会产生任何影响,同时数据能按指定复制到不同的DataServer保障可靠性,从Cluster角度来看属于一个整体Solution