中间件_Redis_01_Redis的简介和安装

Redis的安装

0、前言

Redis在项目开发中是比较常用的非关系型数据库,我自己在做项目中也是经常用到Redis这个技术,之前去实验室面试时,也被问了两次关于Redis的知识,这个技术还是要花时间学学的。


1、背景

中国被世界黑的最惨的一天:2007年10月30日,北京奥运会门票面向境内公众第二阶段预售正式启动。上午一开始,公众提交申请空前踊跃。上午9时至10时,官方票务网站的浏览量达到了800万次,票务呼叫中心热线从9时至10时的呼入量超过了380万人次。由于瞬间访问数量过大,技术系统应对不畅,造成很多申购者无法及时提交申请,为此北京奥组委票务中心对广大公众未能及时、便捷地实现奥运门票预订表示歉意。

不可回避的问题:奥运会门票预售系统开放第一天,上午9点正式开始售票到中午12点,3个小时内,票务网站被浏览次数达到2000万次

问题现象:

  • 海量用户
  • 高并发

罪魁祸首:关系型数据库

  • 性能瓶颈:磁盘IO性能低下
  • 扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群

解决思路:NoSQL

  • 降低磁盘IO次数,越低越好 —— 内存存储
  • 去除数据间关系,越简单越好 —— 不存储关系,仅存储数据

2、NoSQL

NoSQL:即 Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。

作用:应对基于海量用户海量数据前提下的数据处理问题。

常见 Nosql 数据库:

  • Redis
  • memcache
  • HBase
  • MongoDB

解决方案(电商场景)

在这里插入图片描述


3、Redis

3.1、Redis简介

概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。

特征:

  1. 数据间没有必然的关联关系
  2. 内部采用单线程机制进行工作
  3. 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
  4. 多数据类型支持
    1. 字符串类型——string
    2. 列表类型——list
    3. 散列类型 ——hash
    4. 集合类型——set
    5. 有序集合类型——sorted_set
  5. 持久化支持。可以进行数据灾难恢复

3.2、Redis应用

  1. 为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等;
  2. 任务队列,如秒杀、抢购、购票排队等;
  3. 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等;
  4. 时效性信息控制,如验证码控制、投票控制等;
  5. 分布式数据共享,如分布式集群架构中的 session 分离;
  6. 消息队列;
  7. 分布式锁。

4、Redis的安装

Windows环境下主要用于学习为主,在开发和生产环境还是以Linux为主.

4.1、基于Center OS操作系统

此处记录Linux环境基于Center OS安装Redis。

安装步骤:

1. 下载安装包
wget http://download.redis.io/releases/redis-?.?.?.tar.gz

2.  解压
tar –xvf 文件名.tar.gz

3. 编译
make

4. 安装
make install [destdir=/目录]

4.2、Redis基础环境设置

1. 创建软连接
ln -s 原始目录名 快速访问目录名

2. 创建配置文件管理目录
mkdir conf
mkdir config

3. 创建数据文件管理目录
mkdir data

4.3、Redis服务端启动

1. 默认配置启动
redis-server
redis-server --port 6379
redis-server --port 6380……

2. 指定配置文件启动
redis-server redis.conf
redis-server redis-6379.conf
redis-server redis-6380.conf
redis-server conf/redis-6379.conf
redis-server config/redis-6380.conf ……

4.4、Redis客户端连接

1. 默认连接
redis-cli

2. 连接指定服务器
redis-cli -h 127.0.0.1
redis-cli –port 6379
redis-cli -h 127.0.0.1 –port 6379

4.5、Redis服务端配置

# 基本配置
# 以守护进程方式启动,使用本启动方式,redis将以服务的形式存在,日志将不再打印到命令窗口中
daemonize yes

# 设定当前服务启动端口号为6380
port 6380

#设定当前服务文件保存位置,包含日志文件、持久化文件等
dir “/自定义目录/redis/data“

# 设定日志文件名,便于查阅
logfile "6***.log“

学习教程:黑马程序员Redis入门到实战教程。
学习笔记:Redis入门到精通笔记和源码

注:如有错误,敬请指正!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以回答这个问题。canal中间件可以实现redis和mysql的数据同步,它可以监控mysql数据库的binlog日志,将数据变更同步到redis中。同时,canal也支持将mysql数据同步到其他数据库,如elasticsearch等。 ### 回答2: Canal中间件是一种用于实现数据库数据同步的工具。它可以实现Redis和MySQL之间的数据同步。 首先,我们需要设置Canal中间件Redis和MySQL的连接。通过配置Canal中间件的连接参数,使其能够连接到Redis和MySQL数据库。可以设置监控的表和字段,以确定需要同步的数据范围。 当MySQL数据库中的数据发生变化时,Canal中间件会自动捕获这些变化并生成相应的Binlog日志。通过监听MySQL数据库的Binlog日志,Canal中间件能够实时获取更新的数据。 接下来,Canal中间件将获取到的数据进行处理,将变化的数据转换成Redis可以接受的数据格式,并将其写入到Redis数据库中。这样就实现了MySQL中数据变化的同步到Redis数据库的功能。 通过Canal中间件,我们可以实现MySQL和Redis之间的双向数据同步。当MySQL中的数据发生改变时,Canal中间件会将变化的数据同步到Redis数据库中。同样地,当Redis中的数据发生改变时,Canal中间件也能够捕获这些变化并同步到MySQL数据库中。 这种数据同步的方式可以提高应用程序的性能和可靠性。通过将热点数据存储到Redis中,可以提高读取性能。同时,由于Canal中间件的实时同步机制,可以保证数据的一致性。 总结起来,Canal中间件可以实现Redis和MySQL之间的数据同步。它通过捕获MySQL数据库的Binlog日志,并将变化的数据转换成Redis可以接受的格式,实现了数据的同步。这种方式可以提高应用程序的性能和可靠性。 ### 回答3: Canal中间件是一个开源的数据同步工具,用于将数据库中的数据同步到其他数据源。在实现Redis和MySQL数据同步的场景下,可以通过以下步骤实现数据的同步: 第一步,安装配置Canal中间件。首先需要在服务器上安装Canal中间件,并配置Canal的相关参数,如数据源的地址、端口号、用户名和密码等。 第二步,配置Canal中间件连接MySQL数据库。需要在Canal配置文件中添加MySQL数据源的相关信息,包括MySQL服务器的地址、端口号、用户名和密码等。 第三步,配置Canal中间件连接Redis数据库。同样需要在Canal配置文件中添加Redis数据源的相关信息,包括Redis服务器的地址、端口号、密码等。 第四步,创建数据库表数据的监听和同步。通过创建Canal的实例,并指定需要监听的数据库和表,可以实现对特定表数据的监听和同步。 第五步,通过Canal中间件将MySQL数据同步到Redis。当MySQL数据库中的数据发生变化时,Canal中间件会将变更的数据解析并转发给Redis数据库,实现数据的同步。 通过以上步骤,即可实现Redis和MySQL数据的同步。Canal中间件作为数据同步的桥梁,能够实时监听MySQL数据库的变化,并将变更的数据同步到Redis,确保数据的一致性和及时性。 需要注意的是,在配置Canal中间件时,需要确保Canal和MySQL、Redis之间的网络连接正常,并且对应的用户有足够的权限来进行数据操作。同时,还需要进行相关的性能测试和优化,以确保数据同步的效率和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

窝在角落里学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值