redis分布式

SpringBoot集成Redis来实现缓存技术方案

你。 提交于 2019-12-11 03:27:51
概述 在我们的日常项目开发过程中缓存是无处不在的,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求。 Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件,Redis 的优势包括它的速度、支持丰富的数据类型、操作原子性,以及它的通用性。 案例整合 1、在Maven pom.xml文件中加入Redis包 <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>${boot.version}</version> </dependency> 2、SpringBoot配置文件中配置Redis连接(YAML方式配置) spring: application: name: spring-boot-redis redis: host: 192.168.145.132 port: 6379 timeout: 20000 cluster: nodes: 192.168.211.134:7000,192.168.211.134:7001

springboot2.x 使用redis (入门)

馋奶兔 提交于 2019-12-11 02:20:31
在使用之前先简单介绍一下,redis和mongoDB这两个nosql的区别以及使用场景。 1. redis redis是一个分布式缓存、高性能的key-value数据库。支持存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。数据操作在内存中,因此效率非常高。可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。 2. mongoDB mongoDB 是一种文档性的数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性(self-describing),呈现分层的树状数据结构。支持丰富的查询语句。 使用场景总结 mongodb 更偏向保存数据,而 redis 更偏向保持状态。 业务数据量小且对效率有要求用redis. mongoDB用于对海量数据的操作性能提升。 最简单的就这几点,最最重要的是你要知道一个叫缓存,一个是数据库。想清楚了就理解了。 这些都是个人理解,关于事务方面的,虽然redis支持,但很弱,真正涉及到事务的场景基本不会用它的。 接下来,进入正题

Redis 学习-Redis 基础

拥有回忆 提交于 2019-12-11 00:56:40
本博客是在学习《Redis从入门到高可用,分布式实践》教程时的笔记。 同时参考: https://www.cnblogs.com/yiwangzhibujian/p/7067575.html https://www.cnblogs.com/jiang910/p/10020048.html 一、Redis 初识 1. 下载 wget http://download.redis.io/releases/redis-5.0.7.tar.gz 5.0.7 是当前 Redis 官网最新的稳定版本,大小不到2M。 2. 解压 tar xzf redis-5.0.7.tar.gz 3. 安装依赖 gcc yum -y install gcc automake autoconf libtool make 4. 编译 # 进入到目录cd redis-5.0.7# 执行命令 make# 安装make install 5. 可执行文件说明 只执行 make,未执行 make install 命令时,上述可执行文件只能在 redis/src/ 目录下执行。 ①. redis-server :Redis 服务器 ②. redis-cli :Redis 命令行客户端 ③. redis-benchmark :Redis 性能测试 ④. redis-check-aof :AOF 文件修复工具 ⑤. redis

Ehcache Memcache Redis 三大缓存男高音

三世轮回 提交于 2019-12-10 23:00:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Ehcache 在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性 (基于java开发)、被认证(具有apache 2.0 license)、充满特色(稍后会详细介绍),所以被用于大型复杂分布式web application的各个节点中。 什么特色? 1. 够快 Ehcache的发行有一段时长了,经过几年的努力和不计其数的性能测试,Ehcache终被设计于large, high concurrency systems. 2. 够简单 开发者提供的接口非常简单明了,从Ehcache的搭建到运用运行仅仅需要的是你宝贵的几分钟。其实很多开发者都不知道自己用在用Ehcache,Ehcache被广泛的运用于其他的开源项目 比如:hibernate 3.够袖珍 关于这点的特性,官方给了一个很可爱的名字small foot print ,一般Ehcache的发布版本不会到2M,V 2.2.3 才 668KB。 4. 够轻量 核心程序仅仅依赖slf4j这一个包,没有之一! 5.好扩展 Ehcache提供了对大数据的内存和硬盘的存储,最近版本允许多实例、保存对象高灵活性、提供LRU、LFU、FIFO淘汰算法,基础属性支持热配置

redis

China☆狼群 提交于 2019-12-10 22:36:28
1. redis介绍 1.1. 什么是redis ​ Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如 下: 字符串类型 散列类型 (对应Java中的Object,它主要用来存储对象) 列表类型 (List) 集合类型 (Set) 有序集合类型。 (TreeSet) 1.2. redis的应用场景 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用) 分布式集群架构中的session分离。 聊天室的在线好友列表。 任务队列。(秒杀、抢购、12306等等) 应用排行榜。 网站访问统计。 数据过期处理(可以精确到毫秒) 2. Redis的安装 2.1 在Windows上安装 2.2 在Linux上安装 redis是C语言开发,建议在linux上运行,示例使用CentOS7作为安装环境。 安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc yum install gcc-c++ 阿里云的CentOS7默认已经内置了gcc,可以跳过这一步 下载redis 从官网下载 http://download.redis.io/releases/redis-5.0.5.tar.gz 将redis-5.0.5.tar

揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】

ぐ巨炮叔叔 提交于 2019-12-10 17:55:37
2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实现了好用不贵的普惠型分布式缓存Redis产品。 本文从技术视角解读华为云鲲鹏Redis是如何通过数据中心基础设施、芯片、硬件、软件等全栈创新优化,达成以上效果。 一、为什么 ARM 架构适合 Redis ? 众所周知,Redis是一款风靡全球的高性能、高灵活性、数据结构类型丰富的key-value内存数据库,拥有毫秒级的响应时延。因此Redis对服务器内存、网络带宽时延要求极高,即:Redis的高性能能否发挥出来取决于服务器内存、网络性能。 2019年3月, Redis之父Salvatore Sanfilippo(网名:antirez)就Redis ARM架构发展趋势发表观点,他表示把ARM作为Redis运行架构,并且通过了所有测试与验证、性能稳定性非常好,Antirez列举了很多测试数据,得到了广大网友的支持。 由于Redis在设计上就采用单线程架构,所有IO和数据处理都是在同一个线程中完成的,所以单节点的Redis最多只能使用一颗CPU核心,单节点Redis的性能基本达到10万QPS的量级后就没法再向上扩展了。 在现实的业务系统中,对Redis性能往往都要求达到100万QPS以上

Python - Celery

旧巷老猫 提交于 2019-12-09 15:42:54
Celery 概念 简单的灵活可靠的处理大量消息的分布式系统 专注于实时处理的异步任务队列, 同时也支持任务调度 结构图 使用场景 异步任务   将耗时的操作任务提交给 Celery 去异步执行 - 比如发送短信 / 邮件, 消息推送, 音视频处理等 定时任务   类似于 crontab, 比如每日的数据统计 安装 pip install celery[redis] 消息中间件 - 可选 [RabbitMQ / Redis] 来源: https://www.cnblogs.com/shijieli/p/12011211.html

Redis与Memcached的区别

三世轮回 提交于 2019-12-09 12:43:45
观点一: 1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等; 2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储; 3、 虚拟内存 --Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘; 4、过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10; 5、分布式--设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从; 6、存储数据安全--memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化); 7、 灾难恢复 --memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复; 8、Redis支持数据的备份,即master-slave模式的数据备份; 观点二: Redis与Memcached的区别 如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点: 1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。 2 Redis支持数据的备份,即master

Scrapy通过redis实现分布式抓取

纵饮孤独 提交于 2019-12-08 22:46:31
scrapy-redis所实现的两种分布式:爬虫分布式以及item处理分布式。分别是由模块scheduler和模块pipelines实现。 一、Scrapy-redis各个组件介绍 (I) connection.py 负责根据setting中配置实例化redis连接。被dupefilter和scheduler调用,总之涉及到redis存取的都要使用到这个模块。 (II) dupefilter.py 负责执行requst的去重,实现的很有技巧性,使用redis的set数据结构。但是注意scheduler并不使用其中用于在这个模块中实现的dupefilter键做request的调度,而是使用queue.py模块中实现的queue。 当request不重复时,将其存入到queue中,调度时将其弹出。 (III)queue.py 其作用如II所述,但是这里实现了三种方式的queue: FIFO的SpiderQueue,SpiderPriorityQueue,以及LIFI的SpiderStack。默认使用的是第二中,这也就是出现之前文章中所分析情况的原因(链接)。 (IV)pipelines.py 这是是用来实现分布式处理的作用。它将Item存储在redis中以实现分布式处理。 另外可以发现,同样是编写pipelines,在这里的编码实现不同于文章(链接:)中所分析的情况

python3 scrapy_redis 分布式爬取房天下存mongodb

£可爱£侵袭症+ 提交于 2019-12-08 22:39:51
(一)scrapy_redis 简单介绍 scrapy_redis基于scrapy框架的基础上集成了redis,通过了redis实现了去重,多台服务器进行分布式的爬取数据。 (二)scrapy_redis 简单配置 (1)settings.py 文件中加入两行代码: #启用Redis调度存储请求队列 SCHEDULER = "scrapy_redis.scheduler.Scheduler" #确保所有的爬虫通过Redis去重 DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter" (2)spider文件中把scrapy.Spider改为RedisSpider; 加入redis_key 以上就是scrapy_redis在scrapy框架中的简单配置,更多的配置内容,请查看以往博客介绍 (三)房天下爬虫代码的编写 (一)获取的内容是优选房源 起始页: https://m.fang.com/zf/bj/?jhtype=zf 因为这个页面是下滑刷新的,并没有点击下一页的操作,而是动态JS进行加载的,我们可以使用审查元素中的网络,查看接口请求信息 其中的一个链接: https://m.fang.com/zf/?purpose=%D7%A1%D5%AC&jhtype=zf&city=%B1%B1%BE%A9&renttype=cz