【redis】从0开始的redis复习之路

Redis介绍

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

和其他的缓存比如Ecache比较
  • 可以支持多种类型,满足不同的业务
  • 吞吐量大,通过C 编写,性能较高
  • redis 集群稳定性比较好
redis 搭建
通过源码编译安装

下载地址

wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar xzf redis-5.0.0.tar.gz
cd redis-5.0.0
make
启动命令
# 服务端启动
./bin/redis-server ./etc/redis.conf
# 客户端启动 -h 为地址默认为本机 ,-a为 auth 密码
./bin/redis-cli -h 127.0.0.1 -p 6379 -a 123456
通过docker-compose 安装

由于redis 跨平台型,我们可以通过docker 进行快速搭建。docker-compose 是一个docker的编排工具。在之后搭建redis 主从和哨兵的时候通过Docker-compose 可以减少我们的工作量。

version: '2'
services:
    redis:
      image: redis:5.0.0
      container_name: redis
      command: redis-server --requirepass "123456"
      ports:
        - "6379:6379"
      volumes:
        - ./data:/data
redis 持久化

redis 的键值对是保存在内存中的,如果宕机之后所有的键值对都会丢失。所以需要配置落盘。

redis 常用的有两种落盘机制,一种是AOF appending-only 方式。另外一种是SnapShotting(RDB快照模式)方式也是默认的方式。

RDB

RDB 会生成多个文件,每一个数据文件都代表着,某一个时刻redis 里面的数据。

因为直接操作内存,通过rdb 恢复数据通常会比AOF 恢复快。

缺点是,如果中途宕机,可能会有几分钟的数据丢失。

AOF

在aof 持久化方式的时候,redis 将每一次收到的命令都会通过write 追加到appendonly.aof 文件中。redis 在重新启动之后会根据保存的命令重新构建数据库。

AOF 中存在的问题在于,由于只操作一个文件,可能导致这个文件很大,所以redis 提供BGREWRITEAOF 指令重写aof文件。

生产环境 数据备份策略
  • 每小时copy rdb 备份,写到目录中,保留最近48小时备份
  • 每天保留一个当天的rdb 备份,保存到一个目录中,保存最近48小时的备份
  • 每天晚上将当天的服务器的所有备份发送到远程服务器中
参考shell 脚本
crontab -e 
0 * * * * * sh /etc/init.d/redisback.sh
redisback.sh 
#!/bin/sh
cur_date = 'date +%Y%m%d%k'
rm -rf /lujing/$cur_date
mkdir /lujing/$cur_date
cp /var/redis/6379/dump/rdb /lujing/$cur_date
del_date = 'date -d -48hour  +%Y%m%d%k'
rm -rf /lujing/$del_date
序列化注意事项
  • 如果同时配置aof 和rdb redis 启动会通过AOF文件恢复数据
参考文献
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值