Redis源码安装for centos7
Posted 93bok
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis源码安装for centos7相关的知识,希望对你有一定的参考价值。
本文源链接地址:https:www.93bok.com
Redis概述
Redis的出现时间并不长,是NoSQL中的一种,基于键-值型的存储,与Memcache类似,但是Memcache中只是内存的缓存,而Redis不仅是内存中的缓存,还提供持久存储,在2009年第一次发布Redis
Redis 全称(REmote DIctionary
Server)远程字典服务器,而这个字典服务器从本质上来讲,主要是提供数据结构的远程存储功能的,可以理解为Redis是一个高级的K-V存储,和数据结构存储,因为Redis除了能够存储K-V这种简单的数据之外,还能够存储,列表、字典、hash表、等对应的数据结构
redis支持主从模式,但是redis的主从模式默认就有一个sentinel工具,从而实现主从架构的高可用,也就是说,redis能够借助于sentinel工具来监控主从节点,当主节点发生故障时,会自己提升另外一个从节点成为新的主节点
在redis 3.0版本发布,开始支持redis集群,从而可以实现分布式,可以将用户的请求分散至多个不同节点
Redis官网
官网地址:https://redis.io/
Redis和Memcache性能
在性能上redis不比memcache差,因为redis整个运行通通都是在内存中实现的,它的所有的数据集都是保存在内存中的,内存中的数据会周期性的写入到磁盘上,以实现数据的持久功能,而这种写磁盘并不是用于访问,而仅是冗余功能,所以redis所有功能都在内存中完成,因为此性能也是可想而知
Redis和Memcache不同
redis与mamcache不同之处在于redis有一个周期性的将数据保存到磁盘上的机制,而且不只一种,有两种机制,这也是redis持久化的一种实现,另外与mamcache有所区别的是,redis是单线程服务器,只有一个线程来响应所有的请求,相比较还有以下:
1)Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,sets,hash等数据结构的存储。
3)Redis支持数据的备份,即master-slave模式的数据备份。
4)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
5)Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存
Redis支持的数据类型
支持存储的数据类型有:
String(字符串,包含整数), List(列表), Hash(关联数组), Sets(集合), Sorted Sets(有序集合), Bitmaps(位图), HyperLoglog
Redis性能评估
1)100万较小的键存储字符串,大概消耗100M内存
2)由于redis是单线程,如果服务器主机上有多个CPU,只有一个能够使用,但并不意味着CPU会成为瓶颈,因为redis是一个比较简单的K-V数据存储,CPU通常不会成为瓶颈的
3)在常见的linux服务器上,500K(50万)的并发,只需要一秒钟处理,如果主机硬件较好的情况下,每秒钟可以达到上百万的并发
Redis优势
1)支持存储多种数据类型
2)内建Replication和cluster(自身支持复制和集群功能)
3)支持就地更新(in-place update)操作,直接可以在内存中完成更新的操作
4)支持持久化(写入磁盘)
5)避免雪崩,万一出现雪崩,所有的数据都无法恢复,但redis由于有持久性的数据,可以实现恢复
Memcache优势
1)多线程
2)善用多核CPU
3)更少的阻塞操作
4)更少的内存开销
5)更少的内存分配压力
6)可能有更少的内存碎片
Redis源码安装for centos7
1、源码安装
cd /a01/apps/apps_src/
tar -zxvf redis-4.0.8.tar.gz
cd redis-4.0.8
make
make PREFIX=/a01/apps/redis install
2、做好软链接
ln -s /a01/apps/redis/bin/* /usr/bin/
3、创建Redis相关目录
mkdir -p /etc/redis
mkdir -p /a01/apps/redis/data
mkdir -p /var/log/redis
mkdir -p /var/run/redis
4、创建Redis运行用户
useradd redis
5、授权
chown -R redis:redis /a01/apps/redis/
chown -R redis:redis /var/log/redis/
chown -R redis:redis /var/run/redis/
6、创建Redis配置文件
cp /a01/apps/apps_src/redis-4.0.8/redis.conf /etc/redis/
7、修改Redis配置文件
vim /etc/redis/redis.conf
##基本配置
bind 127.0.0.1 #监听的地址,默认监听在127.0.0.1地址上,可以指定为0.0.0.0地址,或某个特定的地址,或可以指定多个,使用空格分隔即可
port 6379 #监听端口:6379/tcp
tcp-backlog 511 #指定tcp-backlog的长度
unixsocket /tmp/redis.sock #指定使用sock文件通信及sock文件位置,如果服务端和客户都在同一台主机上,建议打开此项,基于sock方式通信可以直接在内存中交换,数据不用再经过TCP/TP协议栈进行封装、拆封
unixsocketperm 700 #定义sock文件的访问权限
timeout 0 #表示当客户端连接成功后,空闲(非活跃、或没有任何数据交互)多长时间则连接超时,0表示不启用此功能
tcp-keepalive 300 #定义是否启用tcp-keepalive功能
daemonize yes #表示redis并不会运行成为一个守护进程,如果需要运行成为一个守护进程,则把no,改为yes即可,如果使用服务脚本启动,即使daemonize为no,也会运行为一个守护进程
pidfile /var/run/redis/redis_6379.pid #定义pid文件
loglevel notice #定义日志级别
logfile /var/log/redis/redis_6379.log #定义日志文件
databases 16 #定义redis默认有多少个databases,但是在分布式中,只能使用一个
##RDB持久化相关
save 900 1 #表示在900秒(15分钟内),如果至少有1个键发生改变,则做一次快照(持久化)
save 300 10 #//表示在300秒(5分钟内),如果至少有10个键发生改变,则做一次快照(持久化)
save 60 10000 #表示在60秒(1分钟内),如果至少有10000个键发生改变,则做一次快照(持久化)
dbfilename dump6379.rdb #持久化数据名称
dir /a01/apps/redis/data #持久化数据存放路径
##配置主从相关(这里没有配置主从,所以不修改)
slaveof <masterip> <masterport> #此项不启用时,则为主,如果启动则为从,但是需要指明主服务器的IP,端口
masterauth <master-password> #如果主服务设置了密码认证,那么从的则需要启用此项并指明主的认证密码
slave-read-only yes #定义从服务对主服务是否为只读(仅复制)
##定义与连接和资源相关的配置(未配置,默认即可)
maxclients 10000 #定义最大连接限制(并发数)
maxmemory <bytes> #定义使用主机上的最大内存,默认此项关闭,表示最大将使用主机上的最大可用内存
##定义AOF持久化功能
appendonly yes #AOF的持久化功能相关配置,一旦有某一个键发生变化,将修改键的命令附加到命令列表的文件中,类似于mysql二进制日志,此项定义是否开启AOF持久化功能,no表示关闭,yes表示开启
注意:RDB和AOF两种持久功能可以同时启用,两者不影响
8、编写Redis启动脚本
vim /etc/systemd/system/redis6379.service
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=/a01/apps/redis/bin/redis-server /etc/redis/redis.conf --supervised systemd
ExecStop=/a01/apps/redis/bin/redis-cli shutdown
Type=notify
User=redis
Group=redis
[Install]
WantedBy=multi-user.target
chmod 754 /etc/systemd/system/redis6379.service
systemctl daemon-reload ##重新加载Unit文件
systemctl enable redis6379 ##开机自启
systemctl start redis6379 ##启动redis服务
以上是关于Redis源码安装for centos7的主要内容,如果未能解决你的问题,请参考以下文章