zoukankan      html  css  js  c++  java
  • Redis 简介、下载安装、启动|关闭

    Redis简介

    Redis是一个开源的key-value数据库,由C语言编写,对多种编程语言提供了支持。

    Redis的特点

    • 是内存数据库,数据存储在内存中,性能极高
    • 支持数据的持久化,可以将内存中的数据持久化到硬盘

    • 支持数据备份,redis存储的数据有2份,一份在内存中,一份持久化到硬盘,会自动同步到硬盘

    • 支持hash,list,set,zset(sorted set)等多种数据结构
    • 支持事务,可使用MULTI、EXEC指令将多个操作包起来作为一个事务

    • 特性丰富,提供发布/订阅、通知、 key 过期等特性

     

     redis常见的使用场景

    • 缓存数据库查询结果
    • 分布式系统的数据共享,比如session共享
    • 任务队列,比如存储秒杀、抢购、抢票等用户|订单队列
    • 数据过期处理,设置一个过期时间,到期自动删除该数据

     

     


    Linux下安装Redis

    1、安装gcc

    redis需要自己编译,redis是c语言写的,所以需要安装c语言的编译器gcc。

    先看下是否安装了gcc,没有安装就装上。

    yum list --installed | grep gcc
    yum install gcc

    2、/usr/local下新建目录redis,将redis下载至该目录,解压,删除压缩包

    mkdir /usr/local/redis
    cd /usr/local/redis
    wget http://download.redis.io/releases/redis-5.0.7.tar.gz
    tar -xzvf redis-5.0.7.tar.gz
    rm redis-5.0.7.tar.gz

    3、切换到解压目录下,编译

    cd redis-5.0.7
    make

    4、安装redis

    make install PREFIX=/usr/local/redis

    指定安装目录为/usr/local/redis 。安装完成后,redis/bin下有2个文件:redis-server、redis-cli。

    redis-server是redis的服务器,即redis数据库;redis-cli是redis客户端,用来操作redis数据库。

    解压的目录里的很多程序、配置文件后续还要使用,不能删除。


    把redis作为服务,开机自启

    redis下新建目录conf,把解压目录下的redis.conf复制到conf下;

    redis下新建目录logs,logs下新建文件redis.log;

    redis下新建目录data。

    运行解压目录下的utils/install_server.sh

    utils/install_server.sh

    根据提示,选择路径:

    其实只需指定配置文件、redis-server的路径即可,但默认的日志保存位置、redis-server数据保存位置东一个、西一个,不好记、用时不好找,

    我们自己新建文件|目录,统一放在redis下。

    检查一下设置,按Enter安装服务,如果路径写错了按Ctrl+C取消安装,从头开始即可。

    安装好以后,看到/etc/init.d下生成了一个redis_6379脚本文件,Linux启动时会自动执行init.d下的脚本。

    安装服务以后,默认自动开启redis-server,并且redis-server会开机自启。

    和tomcat、redis不一样,tomcat、redis直接在/etc/rc.d/rc.local中写上路径即可开机自启,redis要指定的路径很多,需要单独用脚本来启动(指定路径)。

    分析

    install_server.sh的执行过程其实就是:

    把utils/redis_init_script拷到/etc/init.d下,重命名为redis_$port,根据我们设置的端口号、路径来修改redis_init_script中对应的部分,

    然后把redis添加为服务、将redis服务设置为开机启动。

    redis_init_script是一个服务脚本,包含了启动、关闭redis-server的命令。

    我们看一下redis_init_script的部分代码:

    第一处是把redis添加为服务,第二处是把设置redis服务的开机启动(在/etc/rc.d下添加redis_$port脚本)。

    设置的服务名是redis_${REDIS_PORT},端口号一般是6379,所以服务名一般是redis_6379,

    看不顺眼的可以在安装服务前把里面的redis_${REDIS_PORT}全部替换为redis,这样服务名就是redis了。

    所以也可以自己把utils/redis_init_script拷到/etc/init.d下,重命名这个文件,修改里面的配置,

    然后chkconfig添加为服务、设置开启等级,

    至于开机启动服务,可以把/etc/init.d下的服务脚本拷到/etc/rc.d/init.d下,开机会自动执行/etc/rc.d/init.d下的脚本;

    或者在/etc/rc.d/rc.local中添加/etc/init.d下服务脚本的路径,开机会自动执行/etc/rc.d/rc.local中指定的脚本文件;

    或者直接使用 chkconfig | systemctl 将服务设置为开机自启,都可以。


      

    防火墙设置

    Linux防火墙要开放6379端口,外部机器才能连接redis服务器。

    firewall-cmd --zone=public --add-port=6379/tcp --permanent
    firewall-cmd --reload

    需要重启防火墙才会生效,不然你看到显示success开启成功,但外部机器依然连不上。


    指定Redis服务器的ip地址

    编辑redis.conf:

    vim conf/redis.conf

    /bind 搜索关键字bind,将ip修改为Linux的ip地址:

    注意是虚线下面的那个。

    默认Redis服务器的ip是127.0.0.1,只能在Linux本地才能连接上,打开了防火墙的6379端口,外部也连不上。

    需要修改为Linux的ip地址。

    重启redis才会生效:

    service redis_6379 restart

    redis服务器启动|关闭的3种方式

    1、前台启动

    直接运行redis/bin下的redis-server,启动后终端的这个标签页不能再使用,需要新建一个标签页来操作。

    Ctrl+C或直接关闭redis所在标签页,即可关闭redis服务器。

    不方便,不推荐使用。

    Ctrl+C可取消|停止Linux终端正在执行的命令,C即cancel。

    2、后台启动

    (1)修改redis.conf,将daemonize设置为yes

    vim conf/redis.conf

    一进去就是命令模式,/daemonize查找:

    默认是no,将它改为yes,设置为守护进程,这样启动redis服务器时会后台启动,前台没有启动界面。

     (2)启动redis服务器

    ./redis-server conf/redis.conf

    就是执行bin下面的redis-server,传入配置文件的路径。

    (3)关闭redis服务器

    ./redis-cli shutdown

    通过redis客户端,向redis服务器发送关闭命令。

    3、服务方式

    方式一:

    service redis_6379 start
    service redis_6379 stop

    方式二:

    systemctl start redis_6379
    systemctl stop redis_6379

    每个人设置的服务名可能不一致,我的是redis_6379。

    服务方式的好处:

    • 不必cd到指定目录
    • 我们安装服务时指定了配置文件的位置,所以也不必传入配置文件的路径

    操作Redis服务器的2个工具

    1、redis自带的客户端redis-cli

    ./redis-cli -h 192.168.1.7 -p 6379

    -h指定redis服务器地址,-p指定redis服务器使用的端口号。缺省-h时默认为127.0.0.1,缺省-p时默认为未6379。

    如果未修改redis.conf中绑定的ip,Linux上直接./redis-cli就可以连上,ip、port使用默认值即可;如果修改了redis.conf中绑定的ip,则用-h 127.0.0.1连不上,必须用绑定的ip才可以。

    输入exit或quit即可退出redis客户端。

    2、Redis Desktop Manager

    下载安装Redis Desktop Manager,这个软件是收费的,Windows、MacOS、Linux的版本都有。

    输入ip、端口号,redis服务器默认没有密码,不填验证。

    先点击“测试连接”看能不能连上,能连上才点确定。

    连接失败常见的原因:

    • 防火墙没打开6378端口,需重启防火墙才会生效
    • redis.conf没有绑定Linux的ip,需重启redis服务器才会生效

    相比redis自带的客户端,Redis Desktop Manager可以统计数据、查看使用情况:

    一般用redis-cli来操作数据库,用Redis Desktop Manager来查看、分析数据|使用情况。


    Redis官方只提供了Linux版,微软自己搞了个山寨的Windows版,可以在github上下载,但基本没公司在实际中用。

  • 相关阅读:
    HDU 4024 Dwarven Sniper’s hunting(数学公式 或者是二分)
    二分图最大匹配总结
    HDU 4022 Bombing (STL应用)
    HDU 1847 Good Luck in CET4 Everybody!(组合博弈)
    HDU 1556 Color the ball(树状数组)
    HDU 4023 Game(博弈)
    HDU 1406 完数(水题)
    HDU 4021 24 Puzzle
    Oracle 多表查询优化
    【编程之美】字符串移位包含的问题(续)
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/11071570.html
Copyright © 2011-2022 走看看