Redis
Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps. (http://redis.io
Redis特性
- 速度快
- 支持10w OPS
- 数据存储在内存中,存取熟读快
- 使用C语言编写,执行效率较高
- 单线程模型,避免多线程上下文切换的额外消耗,连接使用多路复用
- 可持久化
- 支持多种数据结构
- String(BitMaps/HyperLogLog/Blobs)
- Map(Object)
- List
- Set
- Zset
- GEO
- 支持多种编程语言
- Java
- 功能丰富
- 发布订阅
- Lua脚本
- 事物
- pipeline
- 使用简单
- 23k代码(不包括集群)
- 不依赖外部库
- 单线程模型
- 支持主从复制
- 支持高可用、分布式
- Redis-Sentinel(2.8+)
- Redis-Cluster(3.0+)
使用场景举例
- 缓存系统:App Cache
- 计数器:视频播放数
- 消息队列系统:发布订阅
- 排行榜:热搜
- 社交网络:转发数、评论数、点赞数
- 实时系统:布隆过滤器、geo
Redis安装(Linux)
cd /usr/local
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar -xzvf redis-5.0.8.tar.gz
mv redis-5.0.8 redis
cd redis
make
make install
Redis可执行文件
redis-server
:Redis服务器redis-cli
:Redis Client Shellredis-benchmark
:Redis性能测试工具redis-check-aof
:AOF文件检查修复工具redis-check-dump
:RDB文件检查修复工具redis-sentinel
:Redis Sentinel服务器
Redis启动方法
- 最简启动:
redis-server
- 动态参数启动:
redis-server --port=6379
- 配置文件启动:
redis-server /etc/redis.conf
Redis客户端连接
redis-cli -h 127.0.0.1 -p 6379
Redis客户端返回值类型
- 状态回复
127.0.0.1:6379> ping PONG 127.0.0.1:6379>
- 错误回复
127.0.0.1:6379> hget hello field (error) WRONGTYPE Operation against a key holding the wrong kind of value 127.0.0.1:6379>
- 整数回复
127.0.0.1:6379> set num 1 OK 127.0.0.1:6379> incr num (integer) 2 127.0.0.1:6379>
- 字符串回复
127.0.0.1:6379> get hello "world" 127.0.0.1:6379>
- 多行字符串回复
127.0.0.1:6379> mget hello foo 1) "world" 2) "bar" 127.0.0.1:6379>
Redis-server常用配置
配置项 | 意义 | 默认值 | 建议值 |
---|---|---|---|
daemonize | 是否以守护进程方式启动 | no | yes |
port | Redis服务端口 | 6379 | 合适的端口 |
logfile | Redid日志文件路径 | - | - |
dir | Redis工作目录,日志文件、持久化文件将在工作目录下创建 | - | - |
可以使用config get [name|*]
获取某个配置或所有配置