Redis 的特性
Redis 特性1 - 速度快
- 官方数据:10w OPS
数据存放在内存中
C 语言编写,在 3.0 大概是 50000 行代码
单线程模型
类型 | 每秒读写次数 | 随机读写延迟 | 访问带宽 |
内存 | 千万级 | 80ns | 5GB |
SSD盘 | 35000 | 0.1-0.2ms | 100~300MB |
机械盘 | 100左右 | 10ms | 100MB左右 |
Redis 特性2 - 持久化
Redis 所有数据保持在内存中,对数据的更新将异步地保存到磁盘上。
Redis 特性3 - 多种数据结构
Strings/Blobs/Bitmaps
Hash Tables (objects!)
Linked Lists
Sets
Sorted Sets
BitMaps:位图
HyperLoglog:超小内存唯一值计数
GEO:地理信息定位
Redis 特性4 - 支持多种客户端语言
- Java
- Php
- Python
- Ruby
- Lua
- Node
Redis 特性5 - 功能丰富
- 发布订阅
- 事务
- Lua 脚本
- pipeline
Redis 特性6 - 简单
- 核心代码为 23000 行 C 语言的代码
- 不需要依赖外部库
- 单线程模型
Redis 特性7 - 主从复制
主服务器 -> 从服务器
Redis 特性8 - 高可用、分布式
- 高可用 -> Redis-Sentinel(v2.8)支持高可用
- 分布式 -> Redis-Cluster(v3.0)支持分布式
Redis典型应用场景
缓存系统
消息队列系统
计数器
排行榜
社交网络
实时系统
Redis安装
Redis压缩包安装
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar -xzf redis-3.0.7.tar.gz
ln -s redis-3.0.7 redis
cd 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 |
验证启动
- ps -ef | grep redis
- netstat -antpl | grep redis
- redis-cli -h ip -p port ping
三种启动方式比较
生产环境选择配置启动
单例多实例配置文件可以用端口区分开
简单的客户端连接
回复模式 | 请求示例 | 回复示例 |
状态回复 | ping | PONG |
错误回复 | hget hello field | (error)WRONGTYPE Operation against |
整数回复 | incr hello | (integer) 1 |
字符串回复 | get hello | “world” |
多行字符串回复 | mget hello foo | 1)”world” 2)”bar” |
Redis 常用配置
配置名 | 配置作用 |
daemonize | 是否是守护进程(no|yes) |
port | Redis 对外端口号 |
logfile | Redis 系统日志 |
dir | Redis 工作目录 |
趣谈
默认端口
6379 是手机按键上 MERZ 对应的号码,MERZ 取自意大利歌女 Alessia Merz 的名字
查看 redis-conf
cat redis.conf | grep -v "#" | grep -v "^$"