学习资料《redis开发与运维》
安装已写教程,请看windowns上安装CentOS7并且安装redis和windows版redis
Redis 是一种基于键值对(key-value)的NoSQL数据库,与很多键值对
数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、
list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、
HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此
Redis可以满足很多的应用场景,而且因为Redis会将所有数据都存放在内存
中,所以它的读写性能非常惊人。不仅如此,Redis还可以将内存的数据利
用快照和日志的形式保存到硬盘上,这样在发生类似断电或者机器故障的时
候,内存中的数据不会“丢失”。除了上述功能以外,Redis还提供了键过
期、发布订阅、事务、流水线、Lua脚本等附加功能。总之,如果在合适的
场景使用好Redis,它就会像一把瑞士军刀一样所向披靡。
特性:
1,速度快:数据存放在内存中,用C语言开发,单线程
2,基于键值对的数据结构服务器:Redis中的值不仅可以是字符串,而且还可以是具
体的数据结构,字符串、哈希、列表、集合、有序集合
3,丰富的功能:键过期时间(缓存),发布订阅功能(消息系统),支持Lua脚本功能,简单的事务功能,流水线功能
4,简单稳定:简单是因为源码很少,单线程,不需要依赖类库,稳定实践证明了
5,客户端语言多:java,php等都有支持
6,持久化:将数据写入磁盘
7,主从复制:提供了复制功能,可以分布式同步
8,高可用和分布式
使用场景:
1,缓存,提供键过期时间
2,排行榜系统:提供了列表和有序集合的数据结构,可以轻松实现排行榜系统
3,计数器应用:提供了计数功能,后面会讲到incr命令就是计数关键
4,社交网络:点赞,下拉刷新,推送等由于数据结构轻松实现
5,消息队列系统:提供了发布订阅和阻塞队列功能
redis不可以做什么:
1,数据规模角度:大规模数据支持成本过高,因为redis数据是在内存里的
2,数据冷热角度:热数据是频繁操作的数据,冷数据是不怎么用的数据,这些就不适合存在redis中