Redis的特性
Redis是一个key-value数据库,全称为Remote Dictionary Server,它有如下特点:
-
查询速度快
所有数据都放在内存中; Redis用C语言开发,执行速度相对来说比较快; Redis采用单线程架构,避免了多线程竞争资源问题。
-
基于键值对的数据结构服务器
-
功能丰富
提供了5种数据结构:字符串,哈希,列表,集合,有序集合; 提供键过期功能,可以实现缓存; 实现发布订阅功能,用来实现消息系统; 支持Lua脚本功能,可以利用Lua创造出新的Redis命令; 提供了简单的事物功能,能在一定程度上保持事物特性; 提供流水线功能,这样客户端可以将一批命令一次性传到Redis,减少网络开销。
-
简单稳定
代码量少; 单线程模型,客户端开发变得简单; Redis不依赖操作系统的类库,自己实现了事件处理相关功能。
-
客户端语言多
Redis提供了简单的TCP协议,很多语言可以方便的接入它,如Java,C++,C等。
-
持久化
数据放在内存中是不安全的,一旦断电或机器故障,重要的数据可能会丢失,所以 Redis支持了两种持久化方式:RDB和AOF,用于将内存中的数据存放到硬盘中。
-
主从复制
RedIs提供复制功能,实现了多个相同数据的Redis副本,复制功能是分布式Redis 的基础。
-
高可用与分布式
Redis 3.0正式实现了分布式Redis Cluster,提供了高可用,读写和容量的可 扩展性。
Redis能做什么
-
缓存
合理的使用缓存可以t提高数据的访问速度,还能有效降低后端数据源的压力
-
排行榜系统
按访发布时间排名的排行榜; 按热度排序的排行榜。
-
计数器应用
网站的访问量计数,播放量计数等。
-
社交网络
赞/踩,粉丝,共同好友,喜好,推送等。
-
消息队列系统
Redis提供了消息队列功能和阻塞队列功能。
Redis不能做什么
Redis中,数据是存储在内存中的,所以如果有数以亿计的数据,显然不合适。