2_Redis6概述和安装 - 图1

Redis概述

  1. Redis是一个开源的key-value存储系统。
  2. 和Memcached(分布式的高速缓存系统)类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set —有序集合)和hash(哈希类型)。
  3. 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
  4. 在此基础上,Redis支持各种不同方式的排序。
  5. 与memcached一样,为了保证效率,数据都是缓存在内存中。
  6. 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
  7. 并且在此基础上实现了master-slave(主从)同步。

    应用场景

    就是前一节,解决web2.0出现的问题

    配合关系型数据库做高速缓存

  8. 高频次,热门访问的数据,降低数据库IO

  9. 分布式架构,做session共享

image.png

多样的数据结构存储持久化数据

左侧是应用场景,右侧是使用的redis技术
image.png

Redis安装

Redis官方网站 Redis中文官方网站
http://redis.io http://redis.cn/

使用docker

  1. 使用docker下载redis镜像文件

    1. docker pull redis
  2. 创建实例并启动 ```bash //先在linux中创建redis配置文件redis.conf,不然之后的文件挂载没有与之对应的文件 //与mysql的配置文件挂载不同的是redis/conf中没有配置文件redis.conf

//创建conf文件夹 mkdir -p /mydata/redis/conf //创建配置文件redis.conf touch /mydata/redis/conf/redis.conf

//启动redis容器,其中涉及文件挂载及容器命名 docker run -p 6379:6379 —name redis \ -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis redis-server /etc/redis/redis.conf

======================================== //-d redis redis-server /etc/redis/redis.conf 此命令解释如下: //每次启动redis时按照linux中/etc/redis/redis.conf的配置来启动

  1. 3. 使用 redis 容器执行 redis-cli 命令连接 <br />docker exec -it redis redis-cli <br />可以正常使用redis
  2. ![](https://cdn.nlark.com/yuque/0/2021/png/22137958/1629704018913-a51aba65-347b-40e1-a7dd-f79226bc0cd3.png#crop=0&crop=0&crop=1&crop=1&from=url&id=hbZcE&margin=%5Bobject%20Object%5D&originHeight=168&originWidth=722&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
  3. - 之前版本redis的所有数据都存在内存中,若重启redis,则就获取不到a的值了;但是最新版的redis开启了持久化
  4. 4. 设置容器随docker启动自动运行
  5. ```bash
  6. # mysql
  7. docker update mysql --restart=always
  8. # redis
  9. docker update redis --restart=always

不使用docker

  1. 确定安装版本:6.2.1 for Linux(redis-6.2.1.tar.gz)不用考虑在windows环境下对Redis的支持
  2. 下载安装最新版的gcc编译器 ```bash 安装C 语言的编译环境 yum install centos-release-scl scl-utils-build yum install -y devtoolset-8-toolchain scl enable devtoolset-8 bash

gcc —version


3. 将下载的redis-6.2.1.tar.gz放/opt目录,并解压,再进入目录编译
```bash
解压:tar -zxvf redis-6.2.1.tar.gz
cd redis-6.2.1
在redis-6.2.1目录下再次执行make命令(只是编译好)


如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件
解决方案:运行make distclean

跳过make test 继续执行: make install

Redis安装目录

查看默认安装目录: /usr/local/bin
redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
redis-check-dump:修复有问题的dump.rdb文件
redis-sentinel:Redis集群使用
redis-server:Redis服务器启动命令
redis-cli:客户端,操作入口

Redis启动

  1. 前台启动,命令行窗口不能关闭,否则服务器停止 (不推荐)
  2. 后台启动(推荐)

    • 备份redis.conf

      拷贝一份redis.conf到其他目录
      cp  /opt/redis-3.2.5/redis.conf  /myredis
      
    • 修改redis.conf(128行)文件将里面的daemonize no 改成yes,让服务在后台启动

    • 启动redis:redis-server/myredis/redis.conf
    • 客户端访问:redis-cli,多个端口访问:redis-cli -p6379
    • 测试验证:ping
    • 关闭redis:单实例关闭:redis-cli shutdown,也可以进入终端后再关闭,多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown

两种启动方式:
https://segmentfault.com/a/1190000039769819
https://www.jianshu.com/p/67fc4b1cbe1b
image.png