CodeAshen's blog CodeAshen's blog
首页
  • Spring Framework

    • 《剖析Spring5核心原理》
    • 《Spring源码轻松学》
  • Spring Boot

    • Spring Boot 2.0深度实践
  • Spring Cloud

    • Spring Cloud
    • Spring Cloud Alibaba
  • RabbitMQ
  • RocketMQ
  • Kafka
  • MySQL8.0详解
  • Redis从入门到高可用
  • Elastic Stack
  • 操作系统
  • 计算机网络
  • 数据结构与算法
  • 云原生
  • Devops
  • 前端
  • 实用工具
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Reference
GitHub (opens new window)

CodeAshen

后端界的小学生
首页
  • Spring Framework

    • 《剖析Spring5核心原理》
    • 《Spring源码轻松学》
  • Spring Boot

    • Spring Boot 2.0深度实践
  • Spring Cloud

    • Spring Cloud
    • Spring Cloud Alibaba
  • RabbitMQ
  • RocketMQ
  • Kafka
  • MySQL8.0详解
  • Redis从入门到高可用
  • Elastic Stack
  • 操作系统
  • 计算机网络
  • 数据结构与算法
  • 云原生
  • Devops
  • 前端
  • 实用工具
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • Reference
GitHub (opens new window)
  • MySQL8.0详解与实战

  • MySQL面试指南

  • Redis从入门到高可用

    • 第01章-初识Redis
      • 3.1 Redis 安装
      • 3.2 Redis 三种启动方式
      • 3.3 Redis 常用配置
    • 第02章-API理解和使用
    • 第03章-Redis客户端
    • 第04章-Redis其他功能
    • 第05章-Redis持久化
    • 第06章-Redis主从复制
    • 第07章-Redis Sentinel
    • 第08章-Redis Cluster
    • 第09章-缓存设计与优化
    • 第10章-Cache Cloud
  • Elastic-Stack

  • 数据库
  • Redis从入门到高可用
CodeAshen
2023-02-10
目录

第01章-初识Redis

# 一、Redis 特性

Redis 是一个开源的基于键值的存储服务系统,支持多种数据结构,性能非常高,功能丰富。

  • 速度快
  • 持久化
  • 多种数据机构
  • 支持多种语言(协议简单,支持TCP)
  • 功能丰富
  • 简单(代码短小精悍,使用简单)
  • 主从复制

特性一:速度快

官方称可达到 10W QPS

  • 存储介质:内存
  • 实现语言:C 语言
  • 线程模型:单线程(内存读写速度非常快,使用单线程就能达到很高的性能,避免多线程造成的性能瓶颈)

image-20210527175348363

最主要的原因:数据存在内存

特性二:持久化

Redis 所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。

特性三:多种数据结构

五种基本数据结构:String、Linked List、Set、Sorted Set、Hash Table

image-20210527175718385

新支持的数据结构:

  • BitMaps:位图(可以用于实现布隆过滤器)
  • HyperLogLog:超小内存唯一值计数
  • GEO:地理信息定位

特性四:支持多种语言

特性五:功能丰富

  • 发布订阅
  • Lua 脚本
  • 事务
  • Pipeline

特性六:简单

  • 单机核心代码只有 23000 行
  • 不依赖于外部库
  • 单线程模型

特性七:主从复制

image-20210527180830960

特性八:高可用、分布式

  • 高可用:Redis-Sentinel(v2.4 之后)
  • 分布式:Redis-Cluster(v3.0 之后)

# 二、Redis 典型适用场景

  1. 缓存系统

image-20210527184124224

  1. 计数器:适用 Redis 提供的 incr、decr,可以在单线程下高效计数

image-20210527184312463

  1. 消息队列系统:Redis 提供发布订阅功能,可以用于一些简单的消息队列功能

  2. 排行榜:适用 Redis 的有序集合实现

  3. 社交网络:Redis 跟社交网络很多功能吻合,如粉丝数、关注数、共同关注、时间轴列表等

  4. 实时系统:布隆过滤器等

# 三、Redis 安装和启动

# 3.1 Redis 安装

# 下载安装
> wget http://download.redis.io/releases/redis-3.0.7.tar.gz
> tar -zxvf redis-3.0.7.tar.gz
# 建立软连接(可选)
> ln -s redis-3.0.7 redis
# 编译
> cd redis && make
# 安装
> make install
1
2
3
4
5
6
7
8
9

可执行文件说明

  • redis-server:Redis 服务器
  • redis-cli:Redis 命令行客户端
  • redis-batchmark:Redis 性能测试工具
  • redis-check-aof:AOF 文件修复工具
  • redis-check-dump:RDB 文件修复工具
  • redis-sentinel:Sentinel 服务器

# 3.2 Redis 三种启动方式

方式一:默认方式启动

# 启动 redis
> redis-server

# 验证
## 查看进程
> ps -ef | grep redis
## 查看端口是否处于监听
> netstat -antpl | grep redis
## 用客户端验证
> redis-cli -h ip -p port ping
1
2
3
4
5
6
7
8
9
10

方式二:指定参数启动

> redis-server --port 6380
1

方式三:配置文件启动

> redis-server <configPath>
1

三种方式比较

  • 生成环境选择配置文件启动
  • 单机多实例配置文件可以用端口区分开

Redis 客户端连接:

redis-cli -h ip -p port
1

# 3.3 Redis 常用配置

  • daemonize:是否以守护进程启动(no|yes)(默认 no,建议 yes)
  • port:Redis 对外端口号
  • logfile:Redis 系统日志
  • dir:Redis 工作目录
编辑 (opens new window)
上次更新: 2023/06/04, 12:34:19
第09章-异常处理
第02章-API理解和使用

← 第09章-异常处理 第02章-API理解和使用→

最近更新
01
第01章-RabbitMQ导学
02-10
02
第02章-入门RabbitMQ核心概念
02-10
03
第03章-RabbitMQ高级特性
02-10
更多文章>
Theme by Vdoing | Copyright © 2020-2023 CodeAshen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式