Redis初识
盛赞Redis
- 高性能Key-Value服务器 (可达10w级别OPS)
- 支持多种数据结构
- 提供丰富的功能
- 高可用分布式支持
Redis是什么
- 开源
- 基于键值的存储服务系统
- 支持多种数据结构
- 高性能, 功能丰富
开源
- Redis初始版本只有23000行C代码
key-value
- 类似于java中的Map
- 类似于Python中的字典
数据结构
谁在使用Redis?
Redis特性
- 速度快
- 持久化
- 多种数据结构
- 支持多种编程语言 (Redis协议较为简单)
- 功能丰富 (lua, pipeline, 发布订阅)
- 简单 (代码短小精悍, 使用简单)
- 主从复制 (是高可用, 分布式的基础)
- 高可用, 分布式
速度快
- 10w OPS (Operation Per Second 每秒操作次数, 意味着每秒对Redis的持久化操作)
- 数据存储在内存中
- C语言 (50000 line代码)
- Redis是单线程的线程模型
速度快的主要原因
数据对比:
持久化 (断电不丢失数据)
- Redis所有数据保存在内存中, 对数据的更新将异步的保存在磁盘上
多种数据结构
Redis支持5种主要的数据结构
衍生的数据结构, 其本质结构还是上面基本数据结构构成的
- BitMaps 位图
- HyperLogLog 超小内存唯一值计数
- GEO 地理信息定位
支持多种客户端语言
- Redis提供了简单的基于TCP的通信协议
功能丰富
- 发布订阅
- Lua脚本 (可以实现自定义命令)
- 事务
- pipeline (提高并发效率)
“简单”
- 23,000 line of code
- 不依赖于外部库
- 单线程模型
主从复制
高可用, 分布式
- 高可用 - Redis Sentinel (v2.8) 支持高可用
- 分布式 - Redis Cluster (v3.0) 支持分布式
Redis典型应用场景
- 缓存系统
- 计数器
- 消息队列系统
- 实现”排行榜”功能
- 社交网络
- 实时系统
缓存系统
计数器
消息队列系统
排行榜
社交网络
实时系统
- 垃圾邮件系统
- 布隆过滤器 (位图实现)
Redis安装
Redis安装 (Linux)
# 下载
[root@localhost soft]# wget http://download.redis.io/releases/redis-3.0.7.tar.gz
# 解压
[root@localhost soft]# tar -zxf redis-3.0.7.tar.gz
# 创建软连接
[root@localhost soft]# ln -s redis-3.0.7 redis
# 进入Redis目录
[root@localhost redis]# cd redis
# 编译&安装
# 执行make install后将会在/usr/local/bin/目录下生成可执行文件
# 就可以在任意目录下执行这些可执行文件
[root@localhost redis]# make && make install
Redis可执行文件说明
- redis-server : Redis服务器
- redis-cli : Redis命令行客户端
- redis-benchmark : Redis性能测试工具
- redis-check-aof : AOF文件修复工具
- redis-check-dump : RDB文件检查工具
- redis-sentinel : Sentinel服务器(2.8以后)
三种启动方法
- 最简启动
- 动态参数启动
- 配置文件启动 (推荐)
最简启动
- 示例: redis-server
动态参数启动
- 示例: redis-server –port 6380
配置文件启动
- 示例: redis-server {configPath}##
启动方式比较
- 生产环境选择配置启动
- 单机多实例配置文件可以用端口区分开
Redis客户端连接
- redis-cli -h {ipaddr} -p {port}
Redis客户端返回值
Redis常用配置
Redis启动
演示:
# redis-server
[root@localhost redis]# redis-server
# redis-cli
[root@localhost soft]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> exit