一、入门概述
1.1、是什么?
Redis:REmote DIctionary Server(远程字典服务器),是完全开源免费的,用C语言编写、遵守BSD协议,是一个 高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
Redis与其他key-value缓存产品有以下三个特点:
a.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
b.Redis不仅仅支持简单的key-value类型的数据,同时HIA提供list、set、zset、hash等数据结构的存储
c.Redis支持数据的备份,即master-slave(主从复制)的数据备份
1.2、能做什么?
1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务;2)取最新N个数据的操作,如:可以将最新的10评论 的ID放在Redis的list集合里面;3)模拟类似于HttpSession这种需要设定过期时间的功能;4)发布、订阅消息系统;5)定时器、计数器
1.3、在哪儿下载?
官网
中文官方文档
1.4、怎么用?
1)数据类型、基本操作和配置
2)持久化和复制(RDB/AOF)
3) 事务的控制
4)主从复制等
二、Redis安装
为了方便…就使用docker安装吧,顺便也复习一下。可以参考docker 安装Redis。
如果使用的是Linux安装的话,安装完成后,在默认的安装目录下可以看到如下文件:
a.Redsi-benchmark:性能测试工具,可以在自己的电脑上运行,查看自己电脑的性能(Redis服务启动后执行 );
b.Redis-check-aof: 修复有问题的AOF文件,rdb、aof后续会涉及到;
c.Redis-check-dump: 修复有问题的dump.rdb文件
d.Redis-cli: Redis客户端,操作入口
e.Redis-sentinel:redis集群使用
f.Redis-server:Redis服务器启动命令
Redis启动,启动后可以使用PING命令进行连通测试,成功返回PONG,如下图:
三、Redis启动后杂项基础知识讲解
3.1、单进程
单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率。
Epoll是Linux内核为处理大批量文件描述 符而做了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
3.2、Redis默认16个数据库,类似数组下标,从零开始,初始化默认使用零号库。设置数据库的数量,默认数据库为0(不显示),可以使用SELECT 命令在连接上指定数据库id,如下图所示:
3.3、其他
a. DBSIZE 可以查看当前数据库的key的数量
b. FLUSHDB 清空当前数据库
c. FLUSHALL 清空(通杀)所有的数据库
d. 统一密码管理,16个数据库使用的是同一个密码,要么全部都通过 ,要么全部连接失败
e. Redis索引都是从零开始
可参照下图: