Redis基础知识
Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库,可用作数据库,高速缓存和消息队列代理。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis资料
主要推荐Redis的教程,Redis 菜鸟教程 , 其内容详细,阅读完可以全面了解Redis知识。
同时为了实践,可以查阅Redis 中文官网,有比较全的命令解析。
Redis和同类产品的比较
Redis优缺点
对于Redis与Memcached的对比可以查看往期文章分布式缓存 二
- 缺点
- Redis只能存储key/value类型,虽然value的类型可以有多种,但是对于关联性的记录查询,没有Oracle/Mysql方便。
- Redis内存数据写入硬盘有一定的时间间隔,在这个间隔内数据可能会丢失,虽然后续会介绍各种模式来保证数据丢失的可能性,但是依然会有可能,所以对数据有严格要求的不建议使用Redis做为数据库。
- 优点
- 数据结构非常丰富,string、hash、list、set, sortedset.
- 支持主从,Sentinal,分片等多种高级特性,用于负载均衡和容灾,具有高可用性
- 几乎支持所有语言的客户端
Redis 作为消息队列的比较
Redis也是可以做为消息队列的,与之相同功能比较优秀的就是Kafka,简单比较如下:
- Redis
只能说具备发布订阅功能,一个或多个消费者订阅一个频道,但是并不保证可靠。另外一点,redis 发布订阅除了表示不同的 topic 外,并不支持分组,比如kafka中发布一个东西,多个订阅者可以分组,同一个组里只有一个订阅者会收到该消息,这样可以用作负载均衡。
- Kafka
高级特性一应俱全,集群、负载均衡、动态扩容、数据备份等