专栏名称: GitChat技术杂谈
GitChat是新时代的学习工具。
目录
相关文章推荐
程序员的那些事  ·  Rust ... ·  2 天前  
程序员的那些事  ·  《人民日报》批谷歌安卓系统:假开源、真垄断 ·  2 天前  
程序猿  ·  本地部署 DeepSeek ... ·  3 天前  
程序员的那些事  ·  DeepSeek 下棋靠忽悠赢了 ... ·  4 天前  
OSC开源社区  ·  Gitee邀您参与SBOM行业调研:共建可信 ... ·  6 天前  
51好读  ›  专栏  ›  GitChat技术杂谈

如何通过 Redis 构建分布式缓存技术

GitChat技术杂谈  · 公众号  · 程序员  · 2018-01-25 07:15

正文

本文来自作者 默默 GitChat 上分享 「如何通过 Redis 构建分布式缓存技术」, 阅读原文 查看交流实录。

文末高能

编辑 | 哈比

Redis 基础

Redis 是基于内存的,存储形式为 key-value 的非关系型数据库,它的 value 不仅包括基本的 string 类型,还有 list、set、sorted set 和 hash 类型。

Redis 其实也是一种缓存机制,缓存一般是针对查询方法的,但是也有写操作。当 Redis 启动时候,可以去 Mysql 中读数据,然后根据键把数据存放到 Redis 中。

当应用程序查找数据的时候,会先在 Redis 中查找,若找到了,则返回,若找不到,则去 Mysql 中找,找到了则把数据返回,并把该数据放到 Redis 中。

当应用程序写数据的时候,会先在 Redis 中写数据,然后 Redis 主键自增,然后队列处理器会定时去将二者进行同步,若同步失败,则可以直接插入到数据库中,然后清除缓存。

集群与分布式的区别

分布式是实现不同业务,而集群是实现同一功能。

分布式的每个节点都可以是集群。

通过 Redis 可以实现分布式业务的调度,也可以实现集群服务器的数据缓存。

轻松搭建 Redis 服务器

(1)下载 Redis 的 linux 版本

(2)解压 Redis:tar zxvf redis.tar.gz

(3)进入 Redis 的解压目录:cd redis.tar.gz

(4)Make && make install:Make

(5)启动服务端:./redis-server redis.conf

(6)启动客户端:./redis-cli

(7)测试

(8)容易出现的问题

A、系统是 mini,所以导致很多命令,例如 make、vim 等常用命令,一般会报-bash:make:command not found。

解决办法是:yum -y install gcc automake autoconf libtool make。

B、如果 cc 问题,一般是没有 gcc 环境:

解决办法是:yum -y install gcc

Redis 分布式 Demo

Redis 分布式问题,主要是将大任务化为小任务,多个计算机分布式来完成自己的任务,从而实现高效率的工作方式。

该 Demo 是以爬虫(爬取淘宝网的商品信息为例)为例,而 Redis 在此过程中起的是调度作用。

该 Demo 主要分为 5 个模块(获取商品列表、获取商品链接、获取商品图片、获取商品标题和分类、获取商品详情等),每个模块部署在不同的服务器上,同时完成不同的爬取任务,以达到分布式运行,从而提高效率。

其架构图简易如下:

解决方案(伪代码):

说明:面向微服务开发,使用 disconf 统一配置管理,用 Maven 做项目管理工具。

(1)生产任务(produce-assign-server):

图 3

图 4

(2)云存储(spider-img-server):







请到「今天看啥」查看全文