美文网首页
REDIS安装与配置

REDIS安装与配置

作者: Acceleration_8 | 来源:发表于2018-11-17 16:17 被阅读0次
图1解说:

当客户端调用getUser接口的查询用户信息的时候,执行顺序1、2、3、4;由于用户信息存放在DB中,所以2、3就有一次磁盘IO;这个看似非常简单业务逻辑,但是当你做架构设计的时候往往要考虑最坏的场景,或者当成千上万的用户频繁的调用这个接口应该怎么处理?如果按照上图这样的架构处理,这个看似简单业务的接口会使整个系统变慢,这样用户的请求就会长时间得不到响应.


图2解说:

当用客户端调用getUser接口查询用户信息的时候,getUser接口直接去redis中查询,如果redis中有该用户信息,直接返回,避免查询DB,从而避免了磁盘IO操作;如果redis中没有该用户信息,则从DB查询,并且把该用户信息存放到redis中;这样在服务接口(getUser)和DB中间,增加了一个缓存层;看似逻辑增加了,其实当面对高并发的时候,比如上边提到的频繁查询用户信息的情况,只有第一次查询有磁盘IO操作,以后只要redis中存在就没必要再查询数据库了;由于没有了磁盘IO操作,并且redis所有数据都在内存操作,所以速度回大大提升。


redis相对于memcache提供了更丰富的数据类型,根据不同的业务场景可以选在不同的数据类型;redis本身也提供了主从模式、集群模式;也有第三方的比如codis提供了redis集群解决方案。


下载说明:

在https://redis.io/download下载需要的redis版本,目前5.0版本是比较稳定的,4.0版本目前是经过生产验证最多的版本


下载完后,复制到要安装的机器上进行以下操作:

(1.解压安装包:

[root@mini ~]# tar xf redis-4.0.11.tar.gz -C /usr/local    ///解压到你指定的路径


(2.进入解压的文件中编译安装:

[root@mini ~]# cd /usr/local/redis-4.0.11/

[root@mini redis-4.0.11]# make -j 4     ///4表示cpu数,实际据服务器配置决定


问题:

redis编译报致命错误:jemalloc/jemalloc.h:没有那个文件或目录

解决:编译时加一个参数:

make MALLOC=libc


(3.启动服务:

[root@mini redis-4.0.11]# ./src/redis-server /usr/local/redis-4.0.11/redis.conf &  //注意安装路径

图3出现界面说明安装成功了

(4.打开操作界面:

[root@mini redis-4.0.11]# ./src/redis-cli -h 172.0.0.0.1       ////后面写本机ip


(5.配置文件:

[root@mini redis-4.0.11]# vim /usr/local/redis-4.0.11/redis.conf

# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.

daemonize yes

# 默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。

# nothing bad happens, the server will start and run normally.

pidfile /var/run/redis_6379.pid

# 当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面,你也可以指定写入的位置

# in order to get the desired effect.

tcp-backlog 511

# TCP 监听的最大容纳数量

# 在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题。

# Examples:

  bind 127.0.0.1 ::1    192.168.1.100 

# 默认情况下,redis 在 server 上所有有效的网络接口上监听客户端连接。

# 你如果只想让它在一个网络接口上监听,那你就绑定一个IP或者多个IP。

# Close the connection after a client is idle for N seconds (0 to disable)

timeout 0

# 指定在一个 client 空闲多少秒之后关闭连接(0 就是不管它)

# Redis default starting with Redis 3.2.1.

tcp-keepalive 0

# tcp 心跳包

# 如果设置为非零,则在与客户端缺乏通讯的时候使用 SO_KEEPALIVE 发送 tcp acks 给客户端。

# debug (a lot of information, useful for development/testing)

# verbose (many rarely useful info, but not a mess like the debug level)

# notice (moderately verbose, what you want in production probably)

# warning (only very important / critical messages are logged)

loglevel notice

# 定义日志级别(debug,verbose,notice,warning)

# output for logging but daemonize, logs will be sent to /dev/null

logfile ""

# 指定日志文件的位置

# Set the number of databases. The default database is DB 0, you can select

# a different one on a per-connection basis using SELECT <dbid> where

# dbid is a number between 0 and 'databases'-1

databases 16

# 设置数据库的数目。

# 默认数据库是 DB 0,你可以在每个连接上使用 select 命令选择一个不同的数据库,

# 但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值

# However if you have setup your proper monitoring of the Redis server

# and persistence, you may want to disable this feature so that Redis will

# continue to work as usual even if there are problems with disk,

# permissions, and so forth.

stop-writes-on-bgsave-error yes

# 默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,

# 这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,

# 否则就会没人注意到灾难的发生。

# 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。

# the dataset will likely be bigger if you have compressible values or keys.

rdbcompression yes

# 是否在 dump .rdb 数据库的时候使用 LZF 压缩字符串

# 默认都设为 yes

# 如果你希望保存子进程节省点 cpu ,你就设置它为 no ,

# 不过这个数据集可能就会比较大

# tell the loading code to skip the check.

rdbchecksum yes

# 是否校验rdb文件

# The filename where to dump the DB

dbfilename dump.rdb

# 设置 dump 的文件位置

# Note that you must specify a directory here, not a file name.

dir ./

#指定本地数据库存放目录

slaveof <masterip> <masterport>

#设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步

masterauth <master-password>

#当master服务设置了密码保护时,slave服务连接master的密码

equirepass foobared

#设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭

maxclients 10000

#设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

maxmemory <bytes>

#指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区

appendonly no

指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no

appendfilename "appendonly.aof"

#指定更新日志文件名,默认为appendonly.aof

appendfsync everysec

#指定更新日志条件,共有3个可选值:

no:表示等操作系统进行数据缓存同步到磁盘(快)

always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)

everysec:表示每秒同步一次(折衷,默认值)

activerehashing yes

指定是否激活重置哈希,默认为开启

include /path/to/local.conf

#指定包含其它的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件

以上就是redis的基本配置


相关文章

  • Redis的使用

    Redis的使用 如果还不会安装redis安装与配置的,请看本座之前写的redis的安装与配置。查找一下历史Blo...

  • springboot整合redis

    一、redis服务器安装与配置 1.redis安装 2.开启远程访问redis服务:修改redis.conf配置文...

  • Redis入门 -- Redis安装与配置

    Redis入门 -- Redis安装与配置 Redis的安装 Redis的安装,我这里使用的是虚拟机。 为了让主机...

  • redis 安装与配置

    redis 安装与配置 redis安装 源码编译安装 生成的可执行文件 redis-benchmark redi...

  • redis

    redis安装与配置 获取redis资源wget http://download.redis.io/redis-s...

  • 2018-11-21

    Ubuntu系统下Nginx服务器与Redis安装配置 一、Nginx安装与配置 1.安装 ...

  • Linux环境安装Redis服务

    CentOS环境上Redis的安装与配置 源码安装 yum安装gcc依赖 解压 编译安装 直接启动redis 以后...

  • Ubuntu安装配置Redis

    安装Redis 安装并启动 检查Redis是否运行 ubuntu安装Redis桌面管理器 Redis配置 查看配置...

  • linux 安装java环境

    Redis安装 获取redis资源 解压 安装 移动配置文件 配置redis后台启动 将redis加入到开机启动 ...

  • ubuntu18.04 redis安装/配置远程连接/配置密码

    1.安装redis 2.检查redis进程与服务最开始redis配置的ip默认为127.0.0.1 redis状态...

网友评论

      本文标题:REDIS安装与配置

      本文链接:https://www.haomeiwen.com/subject/cwsbfqtx.html