• Redis介绍和安装


    一. Redis的介绍

      Redis 是一个Key-Value存储的系统;它支持存储的value类型有string(字符串),list(列表),set(集合),zset(有序集合);为了保证效率;数据都缓存在内存中;它也周期性将内存数据写入磁盘或者把读写操作写入记录文件。Redis使用单线程模型;还有其他特性:例如健过期,发布/订阅,事务功能等等。
      相比其他个Key-Value存储的系统;有这些优势:

    1. 数据的持久性;Redis会周期性将内存数据写入磁盘和将读写操作写入记录文件。保证数据库在重启之后数据不丢失
    2. 支持master-slave模式;主从复制
    3. 支持存储value类型多样性;有list(列表),set(集合),zset(有序集合),bitmap等等。
    4. 在3.0版本正式提供了高可用分布式架构Redis Cluster集群;提供了高可用性,读写和容量的扩展。

    二. Redis的安装与部署

    2.1 下载地址

      Redis下载地址

    2.2 安装

    tar -zxvf redis-5.0.0.tar.gz
    cd redis-5.0.0
    make 
    cd src
    make install PREFIX=/usr/local/redis
    mkdir -p /usr/local/redis/etc
    mv ../redis.conf /usr/local/redis/etc

    2.3 创建redis用户

      习惯了使用非root用户来管理数据库;前提我们需要创建redis用户和相关目录

    useradd redis
    mkdir -p /data/redis/{logs,conf,pid,data}
    chown -R redis:redis /data/redis

      配置redis;在/data/redis/conf目录下创建redis-6379.conf文件;内容如下

    ###基本参数###
    daemonize yes
    pidfile /data/redis/pid/redis-6379.pid
    port 6379
    tcp-backlog 65535
    bind 0.0.0.0
    timeout 0
    tcp-keepalive 0
    loglevel notice
    logfile /data/redis/logs/redis-6379.log
    databases 16
    lua-time-limit 5000
    maxclients 10000
    protected-mode yes
    dir /data/redis/data/
    
    ###慢日志参数###
    slowlog-log-slower-than 10000
    slowlog-max-len 128
    
    ###内存参数###
    #maxmemory 1G
    #maxmemory-policy volatile-lru
    
    ###RDB持久化参数###
    save 3600 1
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename "dump-6379.rdb"
    
    ###AOF持久化参数###
    no-appendfsync-on-rewrite yes
    appendonly yes
    appendfilename "appendonly-6379.aof"
    appendfsync no
    auto-aof-rewrite-min-size 512mb
    auto-aof-rewrite-percentage 100
    aof-load-truncated yes
    aof-rewrite-incremental-fsync yes
    
    ###客户端Buffer参数### 
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit slave 256mb 64mb 60
    client-output-buffer-limit pubsub 32mb 8mb 60
    
    ###其他参数###
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-entries 512
    list-max-ziplist-value 64
    set-max-intset-entries 512
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    hll-sparse-max-bytes 3000
    activerehashing yes
    latency-monitor-threshold 0
    hz 10
    
    ###安全参数###
    requirepass li0924
    # masterauth 123456789
    rename-command KEYS REDIS_KEYS
    rename-command FLUSHDB REDIS_FLUSHDB
    rename-command FLUSHALL REDIS_FLUSHALL
    
    ###复制参数(从库)###
    ###集群参数###

    相关配置参数:

    • 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同时使用的线程数量
    • stop-writes-on-bgsave-error 强制关闭Redis快照导致不能持久化;默认为yes

      配置用户环境变量

    export REDIS_HOME=/usr/local/redis
    export PATH=$PATH:$REDIS_HOME/bin
    
    alias rds_start="redis-server /data/redis/conf/redis-6379.conf"
    alias rds_stop="redis-cli -a li0924 shutdown &> /dev/null"
    alias rsql="redis-cli"

    2.4 启动redis

    redis-server /data/redis/conf/redis-6379.conf
    # 或者
    rds_start

    2.5 关闭redis

    redis-cli shutdown
    # 或者
    rds_stop

      当然还有一种更直接,更粗暴的方式 kill进程 。不建议这样操作;因为这样不会做持久化操作;

    pkill redis-server

    2.6 redis命令行

    redis-cli
    # 或者
    rsql

    2.7 redis工具箱

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

    2.8 消除Redis启动提醒

      当然这也许需要根据日志如何提醒;做对应的修改。

    # 在/etc/sysctl.conf文件添加
    vm.overcommit_memory = 1
    net.core.somaxconn = 65536
    # 在/etc/rc.local文件添加
    echo never > /sys/kernel/mm/transparent_hugepage/enabled

       现在可以愉快玩耍redis

    # 1. 启动redis数据库
    [redis@Postgres ~]$ rds_start 
    # 2. 连接redis数据库
    [redis@Postgres ~]$ rsql
    # 3. 密码安全认证
    127.0.0.1:6379> AUTH li0924
    OK
    # 4. 查看所有健;原命令是KEYS *127.0.0.1:6379> redis_keys *
    1) "name"
    # 5. 设置K-V
    127.0.0.1:6379> set hello world
    OK
    127.0.0.1:6379> redis_keys *
    1) "hello"
    2) "name"
    # 6. 获取健hello的值
    127.0.0.1:6379> get hello
    "world"
    # 7. 退出redis客户端
    127.0.0.1:6379> exit
    # 8. 关闭redis数据库
    [redis@Postgres ~]$ rds_stop
    [redis@Postgres ~]$ rsql
    Could not connect to Redis at 127.0.0.1:6379: Connection refused
  • 相关阅读:
    【JZOJ6409】困难的图论
    学习LCT小结
    jzoj5432. 【NOIP2017提高A组集训10.28】三元组
    jzoj6367. 【NOIP2019模拟2019.9.25】工厂(factory)
    jzoj6366. 【NOIP2019模拟2019.9.25】化学(chem)
    jzoj5433. 【NOIP2017提高A组集训10.28】图
    学习拓展中国剩余定理小结
    jzoj6300. Count
    jzoj3736. 【NOI2014模拟7.11】数学题
    jzoj6276. 【noip提高组模拟1】树
  • 原文地址:https://www.cnblogs.com/lottu/p/10108831.html
Copyright © 2020-2023  润新知