centos7 安装redis

 每日运维   2018-06-12 18:44   5572 人阅读  0 条评论

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服务


本文地址:https://linux365.cn/34.html
版权声明:本文为原创文章,版权归 每日运维 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?