Redis开发与运维读书笔记之二

第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位是奇数的话,为非稳定版本, 偶数为稳定版本生产环境应当使用偶数版本

猜你喜欢

转载自xwhuang.iteye.com/blog/2377031