前言
redis作为nosql家族中非常热门的一员,也是被大型互联网公司所青睐,无论你是开发、测试或者运维,学习掌握它总会为你的职业生涯增色添彩。本文介绍Redis的安装及配置详解。
redis简介
概述
redis(REmote DIctionary Server)是一个由Salvatore Sanfilippo写key-value存储系统,它由C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value类型的数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,redis在3.0版本推出集群模式。
特点、优势
- k、v键值存储以及数据结构存储(如列表、字典)
- 所有数据(包括数据的存储)操作均在内存中完成
- 单线程服务(这意味着会有较多的阻塞情况),采用epoll模型进行请求响应,对比nginx
- 支持主从复制模式,更提供高可用主从复制模式(哨兵)
- 去中心化分布式集群
- 丰富的编程接口支持,如Python、Golang、Java、php、Ruby、Lua、Node.js
- 功能丰富,除了支持多种数据结构之外,还支持事务、发布/订阅、消息队列等功能
- 支持数据持久化(AOF、RDB)
对比memcache
- memcache是一个分布式的内存对象缓存系统,并不提供持久存储功能,而redis拥有持久化功能
- memcache数据存储基于LRU(简单说:最近、最少使用key会被剔除),而redis则可以永久保存(服务一直运行情况下)
- memcache是多线程的(这是memcache优势之一),也就意味着阻塞情况少,而redis是单线程的,阻塞情况相对较多
- 两者性能上相差不大
- memcache只支持简单的k、v数据存储,而redis支持多种数据格式存储。
- memcache是多线程、非阻塞IO复用网络模型,而redis是单线程IO复用模型
安装部署
1 | yum install gcc -y #安装C依赖 |
开机自启动
1,设置redis.conf中daemonize为yes,确保守护进程开启,也就是在后台可以运行.
1 | vi /etc/redis/6379.conf #修改配置文件: |
- 复制redis配置文件(启动脚本需要用到配置文件内容,所以要复制)
1 | `[root@localhost /]# mkdir /etc/redis #在/etc下新建redis文件夹``[root@localhost redis]# cp /opt/redis-3.0.5/redis.conf /etc/redis/6379.conf #把安装redis目录里面的redis.conf文件复制到/etc/redis/6379.conf里面,6379.conf启动脚本里面的变量会读取这个名称,6379是redis的端口号 ` |
- 复制redis启动脚本
1 | `[root@localhost redis]# find / -name redis_init_script #redis启动脚本一般在redis根目录的utils,如果不知道路径,可以先查看路径``/usr/redis/redis-3.2.4/utils/redis_init_script``[root@localhost redis]# cp /opt/redis-3.0.5/utils/redis_init_script /etc/init.d/redis #复制启动脚本到/etc/rc.d/init.d/redis文件中` |
- 修改启动脚本参数
1 | `[root@localhost redis]# vim /etc/rc.d/init.d/redis``#在/etc/init.d/redis文件的头部添加下面两行注释代码,也就是在文件中#!/bin/sh的下方添加``# chkconfig: 2345 10 90 ``# description: Start and Stop redis` |
同时还要修改参数,指定redis的安装路径
1 | `以下是我的安装路径:``REDISPORT=6379``EXEC=/opt/redis-3.0.5/src/redis-server``CLIEXEC=/opt/redis-3.0.5/src/redis-cli` |
- 设置redis开机自启动
1 | chkconfig --add redis |
验证
1 | 执行客户端工具 |
执行文件说明
redis安装完成后会有以下可执行文件(window下是exe文件)生成,下面是各个文件的作用。
1 | redis-server #Redis服务器和Sentinel服务器,启动时候可使用--sentinel指定为哨兵 |
配置详解
redis所有的配置参数都可以通过客户端通过“CONFIG GET 参数名” 获取,参数名支持通配符,如*代表所有。所得结果并按照顺序分组,第一个返回结果是参数名,第二个结果是参数对应的值。
除了查看配置还可以使用CONFIG SET修改配置,写入配置文件使用CONFIG REWRITE,使用时是需要注意某些关于服务配置参数慎重修改,如bind。
配置参数以及解释,需要注意的是,有些配置是4.0.10新增的,有些配置已经废除,如vm相关配置,和集群相关配置在集群篇章在进行补充。
1 | logfile |