Redis的认识
Redis 简介
Redis是完全开源免费的,遵守BSD协议,是一个高性能的 k-v 数据库
特点
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘,重启的时候可以再次加载使用
- Redis不仅仅支持简单的 k-v 类型数据,同事还提供了 List , Set , ZSet , Hash 等数据结构存储
- Redis 支持数据的备份,即 master-slave 模式的数据备份
Redis的优势
- 性能很高
- 丰富的数据类型
- 原子性,单操作是原子性,多操作也支持事务,也是原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 , Redis还支持 publish/subscribe,通知,key过期等等特性
Redis安装
我们不考虑Windows下的Redis的安装
我们下载我们的安装包,上传到我们的Linux中。我的目录在:/opt/software/redis
下
我们在安装的过程中,可能会出现 gcc 命令未找到的错误提示,我们需要做:
1 | sudo yum install -y gcc |
然后,我们在执行安装指令
1 | make && make install |
查看默认的安装目录:/usr/local/bin
1 | cd /usr/local/bin/ |
redis-benchmark:
性能测试工具redis-check-aof:
修复有问题的 AOF文件redis-check-rdb:
修复有问题的RDB文件redis-sentinel:
Redis集群使用redis-server:
Redis 服务器启动命令redis-cli:
客户端操作入口
启动我们的Redis
先备份好我们的redis.conf
文件,做如下修改:
1 | daemonize no -> |
然后,我们就可以启动了:
1 | redis-server /opt/module/redis-5.0.5/redis.conf |
在进入到我们的客户端:
1 | redis-cli |
此时,我们的一个基本安装就算安装好了。
单线程的Redis
Redis是一个单线程,但是它的速度也确实超乎想象。得益于它的多路IO复用技术。在我们学习计算机操作系统,计算机组成原理中也经常听到多路IO复用,这两者其实在理解上,是差不多的。
多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。