一、入门概述
1.1、什么是 Redis ?
- REmote DIctionary Server(远程字典服务器)。
- 开源、C语言编写、遵守 BSD 协议、高性能的分布式内存数据库。也被称为数据结构服务器。
- 与其他 key-value 数据库相比:
- 支持持久化。
- 提供 key-value 之外的数据类型存储。
- 支持数据备份(master-slave 主从复制模式)。
1.2、学习重点
学习内容
1、数据类型、基本操作和配置。
2、持久化和复制、RDB/AODF
3、事务的控制、管道、分布式锁和Lua脚本
4、主从复制
5、。。。
二、Redis 安装
2.1、Docker 安装 Redis 并以配置文件方式启动
- 1、配置 redis.config 文件
- 2、启动并创建 docker redis 容器。
- 3、dockerfile 挂载数据卷创建单机 Redis 实例详情见 docker 学习笔记
docker run -d --privileged=true -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data --name myredis redis redis-server /etc/redis/redis.conf --appendonly yes
命令参数解释:
1、-p 6379:6379 端口映射。:前表示主机部分,:后表示容器部分。
2、--name myredis 指定该容器名称,查看和进行操作都比较方便。
3、-v 挂载目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
4、-d redis 表示后台启动 redis,redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的 conf 文件,最终找到的是挂载的目录 /usr/local/docker/redis/redis.conf。
5、--appendonly yes 开启 redis 持久化。
注意:redis.conf 文件中的配置,如果不能正确启动,可使用 docker logs 容器名称 来查询错误信息。
2.2、创建并运行单机 Redis 实例
redis 单机启动实例:
#1、创建文件夹
mkdir redisSingle-6379
#2、复制 redis.conf 到 redisSingle-6379 文件夹下cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis-cluster/redisSingle-6379
#3、启动
/usr/local/redis-3.0.0/src/redis-server /usr/local/redis-cluster/redisSingle-6379/redis.conf
三、Redis 启动后杂项基础知识讲解
-
单进程
1、单进程模型来处理客户端的请求。对读写等事件的响应是通过对 epoll 函数的包装来做到的。Redis 的实际处理速度完全依靠主进程的执行效率。
2、epoll 是 Linux 内核为处理大批量文件描述符而作了改进的 epoll,是 Linux 下多路复用 IO 接口select/poll 的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率。
-
默认数据库
默认16个数据库,类似数组下表从零开始,初始默认使用零号库。
设置数据库的数量,默认数据库为0,可以使用 SELECT
命令在连接上指定数据库 id。 -
查看当前数据库 key 的数量
dbsize 查看当前数据库的 key 的数量。
-
清空数据库、通杀数据库
flushdb:清空当前库
Flushall;通杀全部库
-
统一密码管理,16个库都是同样密码,要么都 OK 要么一个也连接不上。
-
Redis 索引都是从零开始。