入门概述
KV、cache、persistence
1、是什么
- Redis:REmote DIctionary Server(远程字典服务器)
- 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式的内存数据库,基于内存运行并支持持久化的NoSQL数据库,被称之为数据结构数据库。
- Redis与其他key—value缓存产品有以下三个特点:
- Redis支持数据持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
- Redis支持数据的备份,即master-slave模式的数据备份
2、能干嘛
- 内存存储和持久化
- redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。
- 取最新N个数据的操作
- 可以将最新的10条评论的ID放在Redis的List集合里面
- 模拟类似于HttpSession这种需要设定过期时间的功能。
- 发布、订阅消息系统
- 定时器、计数器
3、怎么玩
1、数据类型、基本操作和配置
2、持久化和复制,RDB/AOF
3、事务的控制
4、复制
。。。
4、去哪儿下载
Redis的安装
企业做redis的开发,99%的都是linux版的运用和安装
按照redis官网的方法安装
因为redis是c/c++安装的,所以需要检查linux环境中的gcc的环境,现在一般都是使用9.x的版本
在Docker中安装
hub.docker.com
Redis启动后杂项基础知识
1、单进程
- 单进程模型来处理客户端的请求。对读写等时间的响应是通过对epoll函数的包装来做到的。
- redis的实际处理速度完全依靠主程序的执行效率。
- Epoll是linux内核为处理大批量文件描述而做了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只要有少量活跃情况下的系统CPU利用率。
2、数据库
- 默认16个数据库,类似数组下标从0开始,初始默认使用零号库。
- 通过select命令切换数据库
select index
- 查看当前数据库的key的数量(前提是切换到相应的库)
DBSIZE
- 清空当前的库:
FLUSHDB
- 清除所有的库:
FLUSHALL
- 同一个密码管理,16个库都是同样的密码,要么都ok,要么都连不上。
- redis索引都是从0开始的
- 端口默认6379