盛赞Redis
Redis是一种基于键值对的NoSQL数据库,有多种数据结构,例如string(字符串)、set(集合)、list(列表)、hash(哈希)、
zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等。Redis会将数据存放在内存中,所以读写性能很
高,并且可以将内存数据持久化到硬盘中,以防发生断电或者机器故障时,内存数据不会丢失。除了以上的功能,Redis还提供了键值
过期、发布订阅、事物、流水线、Lua脚本等功能。
ps:http://redis.io https://github.com/antirez/redis https://redis.io/clients
Redis特性
1.速度快
除去机器的差异,读写可以达到10万/秒,造就Redis如此之快的速度,可以大致归为以下几点:
·Redis的数据都是放在内存当中。
·Redis是使用c语言实现的,一般来说c语言实现的程序“距离”操作系统更近,执行速度相对更快。
·Redis是单线程,预防了多线程可能产生的竞争和线程切换带来的损耗。
·作者对于Redis源代码可以说是精打细磨,是集性能和优雅于一身的开源代码。
2.基于键值对的数据结构服务
基于此结构可以便于多种场景的应用,提高开发效率,Redis全称是Remote Dictionary Server,它主要提供了5种数据结
构:string(字符串)、set(集合)、list(列表)、hash(哈希)、zset(有序集合),同时在字符串的基础上演变出
了Bitmaps(位图)、HyperLogLog两种神奇的数据结构。
3.丰富的功能
除了5种数据结构,Redis还提供了许多的额外功能:
·提供键值过期
·提供发布订阅功能
·支持Lua脚本功能,可以利用Lua脚本创造新的redis命令
·提供简单的事务
·提供流水线(Pipeline)功能,这样客户端可以将多个命令一次性传到Redis,减少网络的传输
4.简单稳定
首先,源代码很少。其次,Redis使用单线程模型,使得服务端和客户端的开发变得简单。最后,Redis不依赖操作系统的类库。
5.客户端语言多
Redis提供了简单的TCP通信协议,使得许多编程语言可以方便的接入到Redis,几乎涵盖了主流的编程语言。
6.持久化
Redis提供了RDB和AOF两种持久化方式,保证发生断电和机器故障时,保证数据不会丢失。
7.主从复制
Redis提供了主从复制功能,复制功能是分布式Redis的基础。
8.高可用和分布式
Redis从2.8版本正式提供了高可用实现哨兵模式,它能保证Redis节点的故障发现和故障自动转移。Redis从3.0版本正式提供了
集群模式,使Redis真正拥有了分布式实现。
Redis使用场景
1.Redis可以做什么
·缓存
·排行榜系统
·计数器应用
·社交网络
·消息队列系统
2.Redis不可以做什么
·数据规模非常大的场景
·不要存储冷数据,浪费资源
用好Redis的建议
1.不要只会使用Redis API就可以,原理和运维更重要
2.阅读源码
简单的单机部署
基于3.2.0版本部署
1.下载redis安装包 wget http://download.redis.io/releases/redis-3.2.0.tar.gz
2.解压 tar -xzvf redis-3.2.0.tar.gz
3.进入redis目录,执行make
4.启动一个实例 src/redis-server redis.conf &
Redis版本介绍
Redis版本号的命名规则:版本号第二位如果是奇数,则为非稳定版本,如果是偶数,则为稳定版本。