- Redis是一个开源的使用C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志形、的Key-value数据库
- Redis通常用作数据库,缓存以及消息系统
- Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作
- Redis 架构
- Redis Client:Redis客户端负责向服务器端发送请求并接受来自服务器端的响应
- Redis Server:服务器端负责处理客户端请求,例如,存储数据,修改数据等
- Redis的优势
- 性能极高: Redis能读的速度是110000次/s,写的速度是81000次/s
- 丰富的数据结构: Redis支持String, List, Hashe, Set 及 Ordered Set等数据类型
- 原子性:Redis的所有操作都是原子性的
- 丰富的特性:Redis还支持 publish/subscribe, 通知, key过期等等特性
- 注意点:
- 数据库的命名:Redis中的数据库名称是一个从0开始的递增数字命名
- Redis中每个数据库的数据是隔离的不能共享
- Redis默认支持16个数据库,可以通过配置文件或者database命令是修改
- 客户端和Redis连接后默认连接0号数据库,可以使用SELECT命令更换数据库
- 在单机系统中才有数据库的概念,集群中是没有数据库的概念的
- Redis的特点
- Redis提供多种语言的API
- Redis支持数据的持久化(可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用)
- Redis通常被称为数据结构服务器(因为Redis的值可以是String、List、Hash、Sets、sorted sets)
- Redis数据库和关系型数据库的区别
- Redis数据库不支持自定义数据库名称,每个数据库都以编号命名
- Redis也不支持为每个数据库设置不同的访问密码;所以一个客户端要么可以访问全部数据库,要么连一个数据库也没有权限访问
- Redis中的数据库之间并不是完全隔离的(比如FLUSHALL命令可以清空一个Redis实例中所有数据库中的数据)
- 总结
- Redis的数据库更像是一种命名空间
- Redis数据库不适合存储不同应用的程序(比如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但不适宜使用0号数据库存储A应用的数据而使用1号数据库B应用的数据,不同的应用应该使用不同的Redis实例存储数据)
- Redis非常轻量级,一个空的Redis实例只占用1M左右的内存
posted @
2020-09-15 20:16
WeiKing
阅读(
127)
评论()
编辑
收藏
举报