笔记整理自【尚硅谷】Redis 6 入门到精通 超详细 教程
技术的分类
NoSQL数据库是为了解决性能问题而产生的一种技术,而 Redis 就是典型的 NoSQL 数据库。
NoSQL (NoSQL = Not Only SQL),意即 “不仅仅是SQL”,泛指 非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的 key-value 模式存储。因此大大的增加了数据库的扩展能力。
NoSQL适用场景
NoSQL不适用场景
NoSQL解决问题
解决 CPU 及内存压力
解决 IO 压力
Memcache | ||
---|---|---|
![]() | ✔️ 很早出现的NoSql数据库 ✔️ 数据都在内存中,一般不持久化 ✔️ 支持简单的 key-value 模式,支持类型单一 ✔️ 一般是作为缓存数据库辅助持久化的数据库 |
Redis | ||
---|---|---|
![]() | ✔️ 几乎覆盖了 Memcached 的绝大部分功能 ✔️ 数据都在内存中,支持持久化,主要用作备份恢复 ✔️ 除了支持简单的 key-value 模式,还支持多种数据结构的存储,比如 list、set、hash、zset 等。 ✔️ 一般是作为缓存数据库辅助持久化的数据库 |
MongoDB | ||
---|---|---|
![]() | ✔️ 高性能、开源、模式自由 (schema free) 的文档型数据库 ✔️ 数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘 ✔️ 虽然是 key-value 模式,但是对 value (尤其是 json) 提供了丰富的查询功能 ✔️ 支持二进制数据及大型对象 ✔️ 可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBMS,存储特定的数据。 |
配合关系型数据库做高速缓存
高频次,热门访问的数据,降低数据库 I/O
分布式架构,做 session 共享
多样的数据结构存储持久化数据
Redis官方网站 | Redis中文官方网站 |
---|---|
http://redis.io | http://redis.cn/ |
6.2.1 for Linux(redis-6.2.1.tar.gz
)
➢ 不用考虑在windows环境下对Redis的支持
安装 C 语言的编译环境
yum install centos-release-scl scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
测试 gcc 版本
gcc --version
下载 redis-6.2.1.tar.gz 放置 /opt 目录
解压至当前目录
tar -zxvf redis-6.2.1.tar.gz
解压完成后进入目录
cd redis-6.2.1
在redis-6.2.1目录下再次执行 make 命令(只是编译好)
make
跳过 make test 继续执行:make install
make install
默认安装在 /usr/local/bin
redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
redis-check-dump:修复有问题的dump.rdb文件
redis-sentinel:Redis集群使用
redis-server:Redis服务器启动命令
redis-cli:客户端,操作入口
前台启动(不推荐)
前台启动,命令行窗口不能关闭,否则服务器停止。
/usr/local/bin 目录下启动 redis
redis-server
后台启动(推荐)
➢ 备份 redis.conf
安装 redis 的目录 /opt/redis-6.2.6 中将 redis.conf 复制到任意一个文件夹下
cp redis.conf /etc/redis.conf
// 将redis.conf复制到/etc/下
➢ 修改 /etc/redis.conf 配置文件
修改 redis.conf (我的在128行 ) 文件将里面的 daemonize no 改成 yes,让服务在后台启动。
vim redis.conf
➢ /usr/local/bin 目录下启动 redis
redis-server /etc/redis.conf
查询 redis 是否启动
ps -ef | grep redis
用客户端访问 redis
redis-cli
测试验证
ping
关闭 redis
➢ kill 进程
➢ 命令 shutdown
端口 6379 从何而来 Alessia Merz => 九键 | |
---|---|
![]() | 默认16个数据库,类似数组下标从 000 开始,初始默认使用 000 号库 使用命令 select 来切换数据库。如: select 8 。统一密码管理,所有库同样密码。 |
Redis 是单线程 + 多路 IO 复用技术
多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。
串行 vs 多线程 + 锁 (memcached) vs 单线程 + 多路 IO 复用 (Redis)
下一篇: 二年级日记