Redis服务与搭建

简介

nosql数据库

  • 不支持sql语法
  • 存储结构与传统关系型数据库中的关系表不同,nosql中存储的数据都是kv形式
  • nosql的世界中没有一种通用的语言,每种sql都有自己的语法和api,以及擅长的业务场景
  • Redis、Mongodb都属于nosql数据库
  • sql数据库适用于关系特别复杂的数据库查询,nosql反之
  • sql数据库对事务的支持十分完善,nosql基本不支持事务

Redis特点

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用
  • Redis不仅仅支持key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储
  • Redis支持数据的备份,即master-slave模式的数据备份

Redis应用场景

  • 用作缓存,Redis的所有数据都是放在内存中的(内存数据库)
  • 可在某些特定应用场景下替代传统数据库,比如社交类的应用
  • 在大型系统中,巧妙的实现一些特定的功能

Redis安装

直装

1
2
# 直接安装
sudo apt-get install redis-server

手装

  1. 生成安装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    wget https://download.redis.io/releases/redis-6.0.9.tar.gz
    tar xzf redis-6.0.9.tar.gz
    sudo mv redis-6.0.9 /usr/local/redis/
    cd /usr/local/redis/
    # 生成文件
    sudo make
    # 测试依赖
    sudo make test
    # 安装文件
    sudo make install
    # 安装完成后查看是否生成文件
    cd /usr/bin/ && ls -a
    # 将redis配置文件复制到项目的配置文件目录下
    sudo cp /usr/local/redis/redis.conf /etc/redis

    在/usr/bin文件夹下会找到与redis相关的文件

    1
    2
    3
    4
    5
    redis-server:redis的服务器
    redis-cli:redis命令行客户端
    redis-benchmark:redis性能测试工具
    redis-check-aof:AOF文件修复工具
    redis-check-rdb:RDB文件检索工具
  2. 移动配置文件到/etc/redis文件夹中

    1
    2
    sudo mkdir /etc/redis
    sudo cp /usr/local/redis/redis.conf /etc/redis/

配置文件

  • 绑定IP: 如果需要远程访问,可将此行注释,或者绑定一个真实的IP

    1
    bind: 127.0.0.1
  • 端口:默认是6379

    1
    port: 6379
  • 是否以守护进程运行

    如果以守护进程运行,则不会在命令行阻塞,类似于服务,如果以非守护进程运行,则会堵塞命令行

    1
    2
    # 设置为yes表示守护进程,设置为no表示非守护进程,推荐设置为yes
    daemonize yes
  • 数据文件:当redis数据库进行持久化的时候,需要将数据写入到一个文件中

    1
    dbfilename dump.rdb
  • 数据文件存储路径

    1
    dir /var/lib/redis/
  • 日志文件

    1
    logfile /var/log/redis/redis-server.log
  • 数据库个数,默认为16个

    1
    database 16
  • 主从备份,用于集群

    1
    slaveof 192.168.85.129 6379
  • redis快照服务,yes的话可能会导致redis没法正常使用,no的话表示开启快照服务

    1
    stop-writes-on-bgsave-error no

Redis服务

服务端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看服务器端的帮助文档
redis-server --help

# 服务状态变更
sudo service redis start
sudo service redis stop
sudo service redis restart

# 查询redis进程状态
ps aux | grep redis
# 杀死redis进程
sudo kill -9 pid
# 加载指定的配置文件
sudo redis-server /etc/redis/redis.conf

客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看客户端帮助文档
redis-cli --help

# 连接redis,
# -h:表示连接redis的IP
# -p:表示连接redis的端口
redis-cli

# 运行测试命令
ping

# 切换数据库
select 数据库ID