1.Redis的简单介绍
Redis是一种基于键值对的nosql数据库,与很多键值对数据库不同的是,Redis
中的值可以由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)
,Bitmap(位图),HyperLogLog(地理信息定位)等多种数据结构和算法组成。
Redis可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发生类似断电或者
机器故障的时候,内存中的时间不会丢失。
Redis还提供了键过期,发布订阅,事务,流水线,Lua脚本等附加功能。
2.Redis的特性
(1)速度快
Redis的所有数据都是存放在内存中的。
Redis是用C语言开发的,C语言程序距离操作系统更近,执行速度相对快。
Redis使用了单线程,预防了多线程可能产生的竞争问题。
作者对于Redis源代码精打细磨。
3.基于键值对的数据结构服务器
Redis的全称是Remote Dictionary Server,它的主要提供5种数据结构,
字符串,哈希,列表,集合,有序集合,位图,HyperLogLog;
4.丰富的功能
提供了键过期功能,可以用来实现缓存
提供了发布订阅功能,可以用来实现消息系统
支持Lua脚本,可以利用Lua创造出新的Redis命令
提供了简单的事务功能,能在一定程度上保证事务特性。
提供了流水线Pipeline功能,这样客户端能将一批命令一次性传到Redis,减少了网络的开销。
5.简单稳定
代码量少5W行。单线程模型,处理模型简单。不依赖操作系统类库。
6.客户端语言多。
支持Java,Python,C,C++,Nodejs等。
7.持久化
Redis 提供了RDB和AOF两种策略将内存的数据持久化到磁盘。
8.主从复制
Redis提供复制功能,实现了多个相同数据的Redis副本。复制功能是Redis分布式集群的基础。
9.高可用和分布式
Redis从2.8版本开始提供了高可用实现Redis Sentinel,保证Redis故障发现和故障自动转移。
Redis从3.0版本正式提供了分布式实现Redis Cluster,真正的分布式集群。高可用读写和容量的扩展性。
10.Redis可以做什么
(1)缓存
合理使用缓存不仅可以加快数据的访问速度,而且能够有效降低后端数据源的压力。
Redis提供了键值对过期时间的设置,并且也提供了灵活控制最大内存和内存溢出后
的淘汰机制。
(2)排行榜系统
Redis提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便的构建
各种排行榜系统。
(3)计数器应用
视频网站播放量,电商网站浏览数,保证数据的实时性。Redis天然支持计数功能而且
性能也非常好。
(4)社交网络
由于社交网络访问量通常比较大,而且传统的关系型数据不太适合保存这种累心的数据,
Redis提供的数据结构可以相对比较容易地实现这些功能。
(5)消息队列系统
消息队列系统是大型网站的必备基础组件,其具有业务解耦,非实时业务削峰等特性
Redis提供了发布订阅功能和阻塞队列的功能,对于一般的消息队列功能基本可以满足。
1329

被折叠的 条评论
为什么被折叠?



