Redis开发与运维读书笔记2
Redis开发与运维读书笔记二
第1章 初识Redis
Redis的8个重要特性
Redis适合的应用场景
Redis不适合的应用场景
Redis的安装-Linux
可以通过yum/apt或源码安装,考虑到Redis安装简单,且更新快,推荐源码安装
这里建立一个redis的软链接,目的是未来升级时,可以减少应用对版本的依赖
make install可以将redis安装到/usr/local/bin目录下,可以在任意目录下执行redis命令,如redis-cli -v 就可以查看redis版本
Redis的配置、启动、操作和关闭
Redis可执行文件说明
Redis应使用配置文件启动,或者指定端口号和配置名和值启动
redis.conf有60多个配置,基础配置如下:
redis-cli可以以两种方式连接Redis服务器:
当没有-h参数时,默认连接127.0.0.1,如果没有-p参数,默认连接6379端口
终止redis服务:
这是一种优雅的关闭方式,会断开服务器端和客户端的所有连接、生成持久化文件,如果使用kill -9 强制杀死进程,不会持久化文件,还会造成缓冲区资源无法优雅关闭,造成AOF和复制丢失数据。
shutdown可以输入参数,表示在关闭redis前,是否生成持久化文件
Redis版本号和Linux一样,版本号第2位是奇数的话,为非稳定版本,偶数为稳定版本,生产环境应当使用偶数版本
第1章 初识Redis
Redis的8个重要特性
- 速度快:RW速度大约在10万/秒左右,数据存放内存,C语言设计,单线程架构,避免线程争用,
- 基于键值对的数据结构服务器:Redis全称是REmote DIctionary Server,主要提供5种数据结构-字符串、哈希、列表、集合、有序集合,并从字符串演变出了位图和HyperLogLog的结构,同时随着LBS的发展,从3.2开始引入了GEO(地理信息定位)功能
- 丰富的功能:通过键过期功能实现缓存、通过发布订阅功能实现消息系统、支持Lua脚本创造新的Redis命令、提供简单事务功能保证事务特性、提供流水线Pipeline功能实现客户端一次传输一批命令,减少网络开销
- 简单稳定:源码少,早期版本只有2万行,3.0添加了集群特性也只有5万行代码;单线程模型也使得服务器端处理模型简单,容易进行客户端开发;不需要依赖操作系统类库实现事务处理
- 客户端语言多:通过TCP接入各种语言的客户端
- 持久化:RDB和AOF两种持久化策略
- 主从复制:一主多从
- 高可用和分布式:Redis2.8提供了Sentinel高可用实现,保证故障节点的故障发现和自动转移。3.0开始提供集群和分布式实现Redis Cluster,提供了高可用、读写和容量的扩展
Redis适合的应用场景
- 缓存:键值过期时间设置、最大内存灵活设置和内存溢出后的淘汰策略
- 排行榜
- 计数器:天然支持且性能很好
- 社交网络:支持赞/踩、粉丝、共同好友/喜好,推送、下拉创新
- 消息队列
Redis不适合的应用场景
- 不适合放冷数据
Redis的安装-Linux
可以通过yum/apt或源码安装,考虑到Redis安装简单,且更新快,推荐源码安装
wget http://download.redis.io/releases/redis-3.x.x.tar.gz (可以下载最新稳定版) tar xzf redis-3.x.x.tar.gz ln -s redis-3.x.x redis cd redis make make install
这里建立一个redis的软链接,目的是未来升级时,可以减少应用对版本的依赖
make install可以将redis安装到/usr/local/bin目录下,可以在任意目录下执行redis命令,如redis-cli -v 就可以查看redis版本
Redis的配置、启动、操作和关闭
Redis可执行文件说明
- redis-server:启动redis
- redis-cli:redis命令行客户端
- redis-benchmark:redis基准测试工具
- redis-check-aof:AOF持久化文件检测和修复工具
- redis-check-dump:RDB持久化文件检测和修复工具
- redis-sentinel:启动Redis Sentinel
Redis应使用配置文件启动,或者指定端口号和配置名和值启动
redis-server --configKey configValue1 --configKey2 configValue2 --port Port
redis-server /opt/redis/redis.conf
redis.conf有60多个配置,基础配置如下:
- port:端口
- logfile:日志文件
- dir:工作目录(存放持久化文件和日志文件)
- daemonize:是否以守护进程模式启动Redis
redis-cli可以以两种方式连接Redis服务器:
- redis-cli -h {ip} -p {port},然后进行交互
- redis-cli -h {ip} -p {port} {command}直接交互
当没有-h参数时,默认连接127.0.0.1,如果没有-p参数,默认连接6379端口
终止redis服务:
redis-cli shutdown
这是一种优雅的关闭方式,会断开服务器端和客户端的所有连接、生成持久化文件,如果使用kill -9 强制杀死进程,不会持久化文件,还会造成缓冲区资源无法优雅关闭,造成AOF和复制丢失数据。
shutdown可以输入参数,表示在关闭redis前,是否生成持久化文件
redis-cli shutdown nosave|save
Redis版本号和Linux一样,版本号第2位是奇数的话,为非稳定版本,偶数为稳定版本,生产环境应当使用偶数版本