1.Redis简介
redis是使用C语言编写的开源的,支持网络,基于内存,可持久性的键值对存储数据库,2013年5月之前,Redis是最流行的键值对存储数据库,Redis采用内存数据集,支持多种数据类型.
Redis特性:
a.高速读写,数据类型丰富;
b.支持持久化,多种内存分配及回收策略;
c.支持弱事务,消息队列,发布订阅;
d.支持高可用,支持分布式分片集群.
企业缓存数据库解决方案对比:
memcached:
a.优点:高性能读写,单一数据类型,支持客户端式分布式集群,一致性hash多核结构,多线程读写性能高;
b.缺点:无持久化,节点故障可能出现缓存穿透,分布式需要客户端实现,跨房数据同步困难,架构扩容复杂.
Redis:
a.优点:高性能读写,多数据类型支持,数据持久化,高可用架构,支持定义虚拟内存,支持分布式分片集群,单线程读写性能极高;
b.缺点:多线程读写比memcached慢.
Tair:
a.优点:高性能读写,支持三种存储引擎(ddb;rdb;ldb)支持高可用,支持分布式分片集群,支撑了几乎所有淘宝业务的缓存;
b.缺点:单机情况下,读写性能较其他两种产品较慢.
Redis应用场景:
数据高速缓存,web会话缓存;排行榜应用;消息队列,发布订阅.
2.Redis安装部署
# 环境CentOS7,IP:10.0.0.15 wget http://download.redis.io/releases/redis-3.2.10.tar.gz cd redis-3.2.10/ make ln -s /root/redis-3.2.10 /usr/local/redis cd /usr/local/redis grep "^[a-Z]" redis.conf bind 10.0.0.15 port 6379 daemonize yes pidfile /var/run/redis_6379.pid logfile "/usr/local/redis/logs/redis.log" mkdir logs && cd logs cp src/redis-server /usr/bin/ cp src/redis-cli /usr/bin/ redis-server /usr/local/redis/redis.conf # 启动redis
添加开机自启
cat /usr/lib/systemd/system/redis.service IP=`ifconfig eth0 | awk -F"[ ]+" 'NR==2{print $3}'` [Unit] Description=The redis-server Process Manager After=network.target [Service] ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf --daemonize no ExecStop=/usr/local/redis/src/redis-cli -h $IP shutdown [Install] WantedBy=multi-user.target systemctl daemon-reload systemctl enable redis systemctl start redis
3.参数介绍
daemonize yes # 后台启动 appendonly no # 记录操作日志 logfile "/usr/local/redis/logs/redis.log" # 日志文件位置 dbfilename dump.rdb # 持久化数据文件,配置文件中没开持久化功能 protected-mode yes # 开启保护模式,需要requirepass的配合 requirepass root123 redis-cli -h 10.0.0.15 # 连接redis # 正确的关闭方法是redis-cli shutdown 10.0.0.15:6379> CONFIG GET * # 获取当前所有配置 10.0.0.15:6379> CONFIG SET loglevel "notice" # 变更运行配置
Redis数据持久化:
RDB持久化:基于快照的持久化功能,保存一个时刻的数据状态,企业中常用的持久化功能,一般还可以用作备份;
AOF持久化:只追加日志模式,会将redis一段时间内的所有修改命令记录下来,属于比较安全的一种持久化方式.
使用哪种持久化方式?
a.一般来说,如果想要达到很高的数据安全性,应该同时使用两种持久化功能;
b.如果你非常关心数据的安全,并且可以承受数分钟内的数据丢失,建议使用RDB;
c.有很多用户只使用AOF,但是这种方式并不推荐,因为定时生成的RDB快照非常便于数据库进行备份,并且RDB恢复数据的速度要比AOF快很多,而且还有AOF的bug问题.
无持久化策略时,在redis内部使用save命令,dump.rdb生成在redis当前目录中,恢复时只需将dump.rdb放入redis当前目录即可.
官方网站:https://redis.io
官方各版本下载地址:http://download.redis.io/releases/
Redis 中文命令参考:http://redisdoc.com
中文网站1:http://redis.cn
中文网站2:http://www.redis.net.cn
Redis4安装与配置:https://cloud.tencent.com/developer/article/1333876