第一章 初识Redis
Redis的8个重要特性
-
速度快
- 内存存储数据
- C语言实现
- 单线程架构,避免多线程竞争问题
- Redis源码优化好
-
基于键值对的数据结构服务器
Redis 值可支持多种数据结构,如字符串、哈希、列表、集合、有序集合
-
丰富的功能
- 键过期功能,可用来实现缓存
- 发布订阅功能,可用来实现消息系统
- 支持Lua脚本,可以利用Lua创造出新的Redis命令
- 提供流水线功能,客户单能将一批命令一次性传到Redis,减少网络开销
-
简单稳定
- Redis代码量少,能够较容易掌握
- 使用单线程模型
- 不需要依赖OS中的类库
-
客户端语言多
-
持久化
-
主从复制
-
高可用和分布式
Redis使用场景
Redis可以做什么
- 缓存
- 排行榜系统
- 计数器应用
- 社交网络
- 消息队列系统
Redis不适合做什么
- 数据规模角度:Redis使用内存存储数据,成本较高,不适合存储大规模数据
- 数据冷热角度: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版本(本人安装的是6.x版本Redis):
$ redis-cli -v
redis-cli 6.0.9
- 启动Redis Server:
- 默认配置
- 运行启动
- 配置文件启动
- 启动Redis Client:
- 交互式方式
$ redis-cli -h {host} -p {port}
- 命令方式
$ redis-cli-h ip {host} -p {port} {command}
- 停止Redis服务
$ redis-cli shutdown
66947:M 29 May 2021 15:25:54.059 # User requested shutdown... #客户端发出的shutdown命令
66947:M 29 May 2021 15:25:54.059 * Saving the final RDB snapshot before exiting. #保存RDB持久化文件
66947:M 29 May 2021 15:25:54.059 * DB saved on disk #将RDB文件保存在磁盘上
66947:M 29 May 2021 15:25:54.059 # Redis is now ready to exit, bye bye... #关闭
停止Redis服务注意点:
- Redis关闭的过程:断开与客户端的连接、持久化文件生成,是一种相对优雅的关闭方式
- 除了可以通过shutdown命令关闭Redis服务以外,还可以通过kill进程 号的方式关闭掉Redis,但是不要粗暴地使用kill-9强制杀死Redis服务,不但 不会做持久化操作,还会造成缓冲区等资源不能被优雅关闭,极端情况会造 成AOF和复制丢失数据的情况。
- shutdown还有一个参数,代表是否在关闭Redis前,生成持久化文件:
$ redis-cli shutdown nosave|save