特性
速度快
速度快的原因归纳如下:
Redis的所有数据都是存在内存中
使用C语言实现
使用了单线程架构,预防了多线程可能产生的死锁
基于键值对的数据结构服务器
丰富的功能
- 键过期功能
- 发布订阅功能,可以用来实现消息系统
- lua脚本消息
- 事务
- 流水线功能,这样客户端能将一批命令一次性传到Redis,减少了网络开销
简单稳定
- redis的源码很少,所以建议看源码
客户端语言多
持久化
redis提供了两种持久机制
RDB
AOF
主从复制
高可用和分布式
Redis从2.8版本开始提供了高可用实现Redis Sentinel,它保证了Redis节点的故障发现和故障自动转移。
redis从3.0版本开始正式提供分布式实现Redis Cluster,它是Redis真正的分布式实现
使用场景
可以做什么
缓存
Redis提供了键值过期时间设置,并且提供 了灵活的最大内存控制和内存溢出淘汰策略。
排行榜系统
计数器应用
社交网络
比如点赞、粉丝、共同好友、推送、下拉刷新等功能都可以使用Redis
消息队列系统
不能做
redis不是万金油,有很多适合它解决的问题,但是也有很多不适合它的问题。
数据规模:大规模和小规模。因为redis是存放在内存中,如果是大规模的数据肯定是不行的
数据冷热:对于热数据(经常使用的数据)放在Redis可以减少数据库的负担,但是对于冷数据来说基本是对于内存的浪费
数据结构和内部编码
五种数据结构
- string
- hash
- list
- set
- zset
- 概要: 每种数据结构都有有自己的内部编码实现,而且是多种实现
内部编码
安装Redis
下载安装Redis指定版本的源码包
解压Redis源码压缩包
tar xzf redis-5.0.0.tar.gz
建立一个redis目录的软连接,指向Redis源码版本
ln -s redis-5.0.0 redis
建立一个redis目录的软连接是为了不把redis目录固定在指定版本上,有利于版本的升级
进入Redis目录,编译
cd redis
make
编译之前确保操作系统安装了gcc
安装
make install
XMind: ZEN - Trial Version