Redis初识

Redis初识

盛赞Redis

  • 高性能Key-Value服务器 (可达10w级别OPS)
  • 支持多种数据结构
  • 提供丰富的功能
  • 高可用分布式支持

Redis是什么

  • 开源
  • 基于键值的存储服务系统
  • 支持多种数据结构
  • 高性能, 功能丰富

开源

  • Redis初始版本只有23000行C代码

key-value

  • 类似于java中的Map
  • 类似于Python中的字典

数据结构

2020-04-14_013947

谁在使用Redis?

2020-04-14_014319

Redis特性

  • 速度快
  • 持久化
  • 多种数据结构
  • 支持多种编程语言 (Redis协议较为简单)
  • 功能丰富 (lua, pipeline, 发布订阅)
  • 简单 (代码短小精悍, 使用简单)
  • 主从复制 (是高可用, 分布式的基础)
  • 高可用, 分布式

速度快

  • 10w OPS (Operation Per Second 每秒操作次数, 意味着每秒对Redis的持久化操作)
  • 数据存储在内存中
  • C语言 (50000 line代码)
  • Redis是单线程的线程模型

速度快的主要原因

2020-04-14_015508

数据对比:

2020-04-14_015726

持久化 (断电不丢失数据)

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

多种数据结构

  • Redis支持5种主要的数据结构

    2020-04-14_013947

  • 衍生的数据结构, 其本质结构还是上面基本数据结构构成的

    • BitMaps 位图
    • HyperLogLog 超小内存唯一值计数
    • GEO 地理信息定位

支持多种客户端语言

  • Redis提供了简单的基于TCP的通信协议

2020-04-14_020722

功能丰富

  • 发布订阅
  • Lua脚本 (可以实现自定义命令)
  • 事务
  • pipeline (提高并发效率)

“简单”

  • 23,000 line of code
  • 不依赖于外部库
  • 单线程模型

主从复制

2020-04-14_021406

高可用, 分布式

  • 高可用 - Redis Sentinel (v2.8) 支持高可用
  • 分布式 - Redis Cluster (v3.0) 支持分布式

Redis典型应用场景

  • 缓存系统
  • 计数器
  • 消息队列系统
  • 实现”排行榜”功能
  • 社交网络
  • 实时系统

缓存系统

2020-04-14_022101

计数器

2020-04-14_022247

消息队列系统

2020-04-14_022407

排行榜

2020-04-14_022454

社交网络

2020-04-14_022536

实时系统

  • 垃圾邮件系统
  • 布隆过滤器 (位图实现)

Redis安装

Redis安装 (Linux)

# 下载
[root@localhost soft]# wget http://download.redis.io/releases/redis-3.0.7.tar.gz
# 解压
[root@localhost soft]# tar -zxf redis-3.0.7.tar.gz
# 创建软连接
[root@localhost soft]# ln -s redis-3.0.7 redis
# 进入Redis目录
[root@localhost redis]# cd redis
# 编译&安装
# 执行make install后将会在/usr/local/bin/目录下生成可执行文件
# 就可以在任意目录下执行这些可执行文件
[root@localhost redis]# make && make install

Redis可执行文件说明

  • redis-server : Redis服务器
  • redis-cli : Redis命令行客户端
  • redis-benchmark : Redis性能测试工具
  • redis-check-aof : AOF文件修复工具
  • redis-check-dump : RDB文件检查工具
  • redis-sentinel : Sentinel服务器(2.8以后)

三种启动方法

  • 最简启动
  • 动态参数启动
  • 配置文件启动 (推荐)

最简启动

  • 示例: redis-server

动态参数启动

  • 示例: redis-server –port 6380

配置文件启动

  • 示例: redis-server {configPath}##

启动方式比较

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

Redis客户端连接

  • redis-cli -h {ipaddr} -p {port}

Redis客户端返回值

2020-04-14_025950

2020-04-14_030056

Redis常用配置

2020-04-14_030303

Redis启动

演示:

# redis-server
[root@localhost redis]# redis-server 

# redis-cli
[root@localhost soft]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> exit

   转载规则


《Redis初识》 Jiavg 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录