• Linux中redis安装配置及使用详解


    Linux中redis安装配置及使用详解

    一、 Redis基本知识

    1.Redis 的数据类型

    字符串 , 列表 (lists) , 集合 (sets) , 有序集合 (sorts sets) , 哈希表 (hashs)

    2.Redis的特性 

    1)使用ANSI C编写 
    (2)遵守BSD协议 
    (3)支持网络 
    (4)可基于内存亦可持久化 
    (5)日志型、Key-Value数据库
    通常被称为数据结构服务器,因为其value可以是String,Map,list,set,sorted set

    3.特点

    支持数据持久化,可以将内存中的数据保存在磁盘,重启时可再次加载使用;
    不仅支持简单的KV数据,还提供list、set、zset、hash等数据结构的存储;
    支持数据备份,master-slave模式。

    4.优势

    性能极高。读110000次/s,写81000次/s;
    数据类型丰富;
    所有操作都是原子性,支持对几个操作全并后的原子性执行;
    丰富的特性。还迟滞publish/subscribe,通知,key过期等。

    5.与其他KV存储的区别

    数据结构复杂,支持原子性操作。基于基本数据结构,无需额外抽象;
    可以持久化到磁盘。

    6.Redis 和 memcache 的区别

    1)Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等;
    (2)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储;
    (3)虚拟内存--Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘;
    (4)过期策略--memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10;
    (5)分布式--设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从;
    (6)存储数据安全--memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化);
    (7)灾难恢复--memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复;
    (8)Redis支持数据的备份,即master-slave模式的数据备份;
    (9)应用场景不一样:Redis出来作为NoSQL数据库使用外,还能用做消息队列、数据堆栈和数据缓存等;Memcached适合于缓存SQL语句、数据集、用户临时性数据、延迟查询数据和session等。

     

    二、安装配置

    1.关闭防火墙

    临时关闭防火墙
    systemctl stop firewalld
    
    永久防火墙开机自关闭
    systemctl disable firewalld
    
    临时打开防火墙
    systemctl start firewalld
    
    防火墙开机启动
    systemctl enable firewalld
    
    查看防火墙状态
    systemctl status firewalld

    2.关闭SELinux

    临时关闭SELinux
    setenforce 0
    
    临时打开SELinux
    setenforce 1
    
    查看SELinux状态
    getenforce
    
    开机关闭SELinux
    编辑/etc/selinux/config文件,如下图,将SELINUX的值设置为disabled。下次开机SELinux就不会启动了。

    3.下载redis

    Redis官网:http://redis.io/download
    Redis中文网:http://www.redis.cn/download.html

    4.将下载好的压缩包放到/usr/local目录下或者直接下载

    # wget http://download.redis.io/releases/redis-4.0.9.tar.gz
    # tar xzf redis-4.0.9.tar.gz
    # ln -s redis-4.0.9 /home/redis
    # cd redis
    # make

    5.编译完成后,进入Src目录

    # cd src
    # mkdir /usr/redis
    # cp redis-server /usr/redis
    # cp redis-benchmark /usr/redis
    # cp redis-cli /usr/redis
    # cp ../redis.conf /usr/redis
    # cd /usr/redis

    6.启动服务

    # /usr/redis/redis-server /usr/redis/redis.conf
    建立软连接
    # ln -s /usr/redis/redis-server /usr/bin/redis-server
    # ln -s /usr/redis/redis-cli /usr/bin/redis-cli
    重新启动
    # redis-server /usr/redis/redis.conf
    启动成功

    7.设置守护进程

    将redis.conf中daemonize设置为yes,确保守护进程开启。
    sed -i 's#daemonize no#daemonize yes#g' /usr/redis/redis.conf

    8.设置开机自启动

    vim /etc/rc.local
    加入
    redis-server /usr/redis/redis.conf

     

    三、 文件及配置概述

    1./usr/local/redis/bin 目录下的几个文件用途

    redis-benchmark : Redis 性能测试工具
    redis-check-aof : 检查 aof 日志的工具
    redis-check-dump : 检查 rdb 日志的工具
    redis-cli : 连接用的客户端
    redis-server : Redis 服务进程

    2.Redis 的配置项解析

    daemonize : 如需要在后台运行 , 把该项的值改为 yes
    pdifile : 把 pid 文件放在 /var/run/redis.pid , 可以配置到其他地址
    bind : 指定 Redis 只接收来自该 IP 的请求 , 如果不设置 , 那么将处理所有请求 , 在生产环节中最好设置该项
    port : 监听端口 , 默认为 6379
    timeout : 设置客户端连接时的超时时间 , 单位为秒
    loglevel : 等级分为 4 级 , debug , revbose , notice 和 warning , 生产环境下一般开启 notice
    logfile : 配置 log 文件地址 , 默认使用标准输出 , 即打印在命令行终端的端口上
    database : 设置数据库的个数 , 默认使用的数据库是 0
    save : 设置 redis 进行数据库镜像的频率
    rdbcompression : 在进行镜像备份时 , 是否进行压缩
    dbfilename : 镜像备份文件的文件名
    dir : 数据库镜像备份的文件放置的路径
    slaveof : 设置该数据库为其他数据库的从数据库
    masterauth : 当主数据库连接需要密码验证时 , 在这里设定
    requirepass : 设置客户端连接后进行任何其他指定前需要使用的密码
    maxclients : 限制同时连接的客户端数量
    maxmemory : 设置redis能够使用的最大内存
    appendonly : 开启 appendonly 模式后 , Redis 会把每一次所接收到的写操作都追加到 appendonly.aof 文件中 , 当 Redis 重新启动时 , 会从该文件恢复出之前的状态
    appendfsync : 设置 appendonly.aof 文件进行同步的频率
    vm_enabled : 是否开启虚拟内存支持
    vm_swap_file : 设置虚拟内存的交换文件的路径
    vm_max_momery : 设置开启虚拟内存后 , Redis 将使用的最大物理内存的大小 , 默认为 0
    vm_page_size : 设置虚拟内存页的大小
    vm_pages : 设置交换文件的总的page数量
    vm_max_thrrads : 设置 vm IO 同时使用的线程数量

     

    四、错误解决办法

    1.客户端连接时 , 提示 DENIED Redis is running in protected mode because protected mode is enabled...

    将配置文件里的 protected mode改为了 no , 原本是 yes

    2.客户端连接时 , 提示 Connection refused...

    可能是配置文件里面的 bind 字段设置了入口 IP , 将其注释
  • 相关阅读:
    Codeforces Bubble Cup 8
    Codeforces Bubble Cup 8
    BZOJ 2588: Spoj 10628. Count on a tree 树上跑主席树
    hdu 5279 Reflect phi 欧拉函数
    hdu 5278 Geometric Progression 高精度
    hdu 5428 The Factor 分解质因数
    hdu 5427 A problem of sorting 水题
    Codeforces Gym 100610 Problem A. Alien Communication Masterclass 构造
    Codeforces Gym 100610 Problem K. Kitchen Robot 状压DP
    Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞
  • 原文地址:https://www.cnblogs.com/heyongboke/p/9970661.html
Copyright © 2020-2023  润新知