Redis是什么,Redis是干嘛的?(新手必看)
Redis 是一种完全开源的高性能的键值对数据库,遵守 BSD(Berkeley Distribution License)。
Redis 还是一种非关系数据库,支持主从同步,即数据可以由主服务器向从服务器同步,从服务器也可以关联其他从服务器的主服务器。
Redis 支持 Java、Python、C、C++、C#、PHP、JavaScript、Perl、Object-C 等语言,使用便捷。
Redis 的缺点如下:
例如,用户在网上购物的时候,购物车的信息突然全部丢失了,这样会导致用户的体验感很差。但是,用 Redis 做缓存持久化过后,上述情况就不会出现了。
以 Magento 为例,它通过提供一个插件来使用 Redis 作为全页缓存后端。
Redis 还是一种非关系数据库,支持主从同步,即数据可以由主服务器向从服务器同步,从服务器也可以关联其他从服务器的主服务器。
Redis 支持 Java、Python、C、C++、C#、PHP、JavaScript、Perl、Object-C 等语言,使用便捷。
Redis的优缺点
Redis 具有以下优势:- 读/写性能非常高。Redis 读取的速度能达到 110000次/s,写的速度能达到 81000 次/s;
- 数据类型丰富。Redis 支持二进制的字符串、列表、哈希、集合、有序集合等数据类型操作,可以将任何类型的文件转换成二进制数值进行存储,并在读取的时候转换成相应的文件类型;
- 具有原子性。Redis 的操作属于原子性的,操作时要么执行成功要么执行失败,不允许有未知状态;
- 支持丰富的个性化内容。Redis 支持通知、消息发布/订阅、键过期等特性。
Redis 的缺点如下:
- 当 Master 节点写内存快照时,save 动作调用 rdbSave() 函数,会阻塞主线程的工作。当快照比较大时,性能会受到非常大的影响,服务会产生间断性暂停。所谓内存快照,是指内存中的数据在某个时刻被记录下来,并以文件的形式保存到硬盘上;
- Master 节点 AOF(Append Only File)持久化。在系统运行的同时,AOF文件会不断增大,而 AOF 文件过大会影响 Master 节点重启的性能;
- Master 节点调用 BgreWriteAOF 重写 AOF 文件,而 AOF 文件在重写的时候会占大量的 CPU 和内存资源,这会导致服务节点负载过高,出现短暂服务暂停现象;
- 要保证 Redis 主从复制的速度和连接的稳定性,Master 节点和 Slave 节点必须在同一个局域网中。
Redis的应用场景
1) 会话缓存
会话缓存是一种常见的 Redis 应用情景和使用。与其他存储(如Memcached)作为会话缓存相比,使用 Redis 作为会话缓存的优势在于读取速度快,提供缓存持久化。当维护的数据不是严格要求一致性的缓存数据时,此类数据也需要缓存持久化。例如,用户在网上购物的时候,购物车的信息突然全部丢失了,这样会导致用户的体验感很差。但是,用 Redis 做缓存持久化过后,上述情况就不会出现了。
2) 全页缓存
除基本的会话缓存之外,Redis 还提供很简便的全页缓存平台。回到一致性问题,即使重启了 Redis 实例,因为有磁盘的持久化,用户也不会体验到页面加载速度的下降,这是一个极大改进。以 Magento 为例,它通过提供一个插件来使用 Redis 作为全页缓存后端。