• Redis概述与安装


    Redis安装与配置

    安装包下载

    Windows版下载(Redis官方网站没有提供Windows版的安装包,但可以通过GitHub来下载Windows版Redis安装包):

    https://github.com/tporadowski/redis/releases

    注:Windows安装包都是某位民间“大神”根据Redis源码改造的,并非Redis官方网站提供,能用行就行。

    Linux版的下载:

    https://download.redis.io/releases/

    Windows下配置

    根据上述Windows版下载地址(其它自行搜的一样),即可查看到能下载的安装包(msi后缀名)或者是解压版(zip文件)的Redis。msi安装版本的,直接下一步下一步就是了,网上一搜有的是教程就不过多阐述了。

    对于作者来说习惯性手动配置,所以一般选用zip解压版的,解压之后就获得一个文件夹(这里就不截图展示了,网上一搜一大把),关注几个核心文件即可(最关键的点,是注意是把这个解压之后的文件夹放哪里)。

    Windows版本的安装目录下有两个配置文件:

    • redis.windows-service.conf
    • redis.windows.conf

    直接点击安装目录下的redis-server.exe会默认加载redis.windows-service.conf的配置。因此想要加载redis.windows.conf的配置,只需在安装目录下运行控制台,输入:redis-server redis.windows.conf即可。

    关于redis.windows.conf文件详解,网络上也一搜一大把,如果需要连接或者配置自行搜索即可;如果你只是想简单启动,无需进行特别的配置。只需要关注端口和几个默认的配置即可:

    • port:端口,默认6379
    • requirepass:密码,默认无密码。(注:这个密码管理所有的Redis库的密码)
    • databases:默认16个数据库,类似数组的下标从0开始,初始默认使用0号库

    Windows下启动

    在CMD命令窗口下(快捷键:Win+R输入cmd),进入Redis目录(你自己解压之后的Redis目录)输入如下命令即启动:

    redis-server.exe redis.windows.conf
    
    • 1

    启动界面,最熟悉不过了。

    可以自定义一个bat文件方便启动(个人自用):

    @echo off
    echo redis start......
    title redis-server
    set ENV_HOME="D:\Redis"  # 作者Redis解压目录的位置,自行修改位自己的
    D:
    color 0a   # 改变控制题的背景和字的颜色,为了好看,可以注释掉
    cd %ENV_HOME%
    redis-server.exe redis.windows.conf
    exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    复制上面代码,记事本另存为bat文件即可,放在桌面,想用双击运行。

    还可以将Redis注册成Windows服务,在CMD命令窗口下(Redis解压目录的位置),输入命令如下:

    	redis-server --service-install redis.windows-service.conf --loglevel verbose
    
    • 1

    快捷键:Win+R再输入services.msc即可查看到redis服务已注册完成。

    Linux下配置

    通过https://download.redis.io/releases/下载相应版本的redis,具体哪个版本自己决定,这里作者选择了6.2.1版本。将下载好的“redis-6.2.1.tar.gz”文件发送上传到Linux上,位置自已决定即可。

    以下操作都是作者环境下操作,请对应您的环境配置。

    作者这里选择在“/usr/local/”下创建了一个“redis”目录:

    /usr/local/redis
    
    • 1

    将“redis-6.2.1.tar.gz”文件发送上传该目录下并解压:

    tar -zxvf redis-6.2.1.tar.gz
    
    • 1

    进入“redis-6.2.1”目录并编译:

    cd /usr/local/redis/redis-6.2.1/
    make
    
    • 1
    • 2

    一般情况下make不会出现问题,但是可能会出现如下几个问题:

    • 报错"cc:未找到命令",原因是系统中缺少gcc,安装gcc即可。

      yum install gcc
      
      • 1
    • 其它问题自行搜索解决,因为每个人的环境确实不太一样,作者这里用了算是一个新创建的Linux系统Centos7.9版本。

    继续,编译完成就可以安装redis了:

    make PREFIX=/usr/local/redis/redis-6.2.1 install
    
    # PREFIX关键字的作用是编译的时候用于指定程序存放的路径
    # 例如:这里我指定了redis必须存放在/usr/local/redis/redis-6.2.1目录,这是我先前预设的目录
    # 假设不添加该PREFIX关键字
    # Linux会将可执行文件存放在/usr/local/bin目录
    # 库文件会存放在/usr/local/lib目录
    # 配置文件会存放在/usr/local/etc目录
    # 其他的资源文件会存放在usr/local/share目录
    # 这里指定目录也方便后续的卸载,后续直接 rm -rf /usr/local/redis/redis-6.2.1 即可删除redis
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    等待安装成功,这样在“/usr/local/redis/redis-6.2.1”会出现一个“bin”目录:

    [root@VM-24-15-centos redis-6.2.1]# cd bin/
    [root@VM-24-15-centos bin]# ll
    total 24792
    -rwxr-xr-x 1 root root  6556664 Nov 14 15:46 redis-benchmark
    lrwxrwxrwx 1 root root       12 Nov 14 15:46 redis-check-aof -> redis-server
    lrwxrwxrwx 1 root root       12 Nov 14 15:46 redis-check-rdb -> redis-server
    -rwxr-xr-x 1 root root  6765592 Nov 14 15:46 redis-cli
    lrwxrwxrwx 1 root root       12 Nov 14 15:46 redis-sentinel -> redis-server
    -rwxr-xr-x 1 root root 12061704 Nov 14 15:46 redis-server
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    目录介绍:

    • redis-benchmark:性能测试工具,可以在自己本机允许,看看自己本机性能如何
    • redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
    • redis-check-dump:修复有问题的dump.rdb文件
    • redis-sentinel:redis集群使用
    • redis-server:redis服务器启动命令
    • redis-clit:客户端,操作入口

    Linux下启动

    根据上面的操作已经将redis安装完成了。在目录“/usr/local/redis/redis-6.2.1”下启动redis:

    ./bin/redis-server
    # 如果你在bin目录下直接redis-server即可
    
    • 1
    • 2

    执行成功,即可看到启动初始界面。

    上面这种启动模式,如果你是通过SSH连接Linux的话,关闭SSH窗口,则redis会停止。

    另外,可能会出现的情况,执行“redis-server”可能会提示“bash: redis-server: command not found”的错误,这种情况是因为和你可能和我一样,安装redis的时候用了“PREFIX”关键字指定了安装目录。如果你是其它原因,自行搜索吧。

    如何解决,将redis安装目录下的bin目录下的所有文件,复制到“/usr/bin”下即可:

    cp -r /usr/local/redis/redis-6.2.1/bin/.  /usr/bin
    # /usr/local/redis/redis-6.2.1/bin/ 是我本机的redis的bin目录
    # /usr/local/redis/redis-6.2.1/bin/ 后面还有个点,别落下
    
    • 1
    • 2
    • 3

    Linux下启动(配置后端启动)

    步骤如下:

    复制redis.conf文件到/etc目录:

    cp /usr/local/redis/redis-6.2.1/redis.conf /etc
    # /usr/local/redis/redis-6.2.1/ 是我本机的redis目录
    
    • 1
    • 2

    使用vi命令修改/etc/redis.conf中的配置,将后台启动设置daemonize改为yes,如下:

    daemonize yes
    
    • 1

    启动redis:

    redis-server /etc/redis.conf
    
    • 1

    通过查看redis进程命令:

    ps -ef | grep redis
    
    • 1

    关闭redis

    • 方式1,直接kill,kill -9 redis的pid。我相信你和我一样,喜欢用这个方式。
    • 方式2,redis-cli shutdown

    进入redis命令窗口

    执行 redis-cli 即可进入redis命令窗口,然后就可以执行redis命令了:

    redis-cli
    127.0.0.1:6379> 
    
    • 1
    • 2

    如果需要在远程redis服务上执行命令:

    redis-cli -h host -p port -a password
    # 例如:redis-cli -h 127.0.0.1 -p 6379 -a "mypassword"
    
    • 1
    • 2

    我相信你,肯定不会在"特别"的情况下,用这种方式操作redis。

    我相信你,肯定不会在"特别"的情况下,用这种方式操作redis。

    redis命令大全

    参考:http://doc.redisfans.com/

    redis介绍相关知识

    • 默认端口6379
    • 默认16个数据库,类似数组的下标从0开始,初始默认使用0号库
    • 使用select 来切换数据库,如:select 1,切换到第2个库
    • 统一密码管理,所有的库密码相同
    • dbsize:查看当前数据库的key的数量
    • flushdb:情况当前库
    • flushall:清空全部库

    redis.conf几个重要的配置项

    配置项名称配置项值范围说明
    daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
    port指定 Redis 监听端口,默认端口为6379
    bind绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和protected-mode控制了是否可以远程访问
    protected-modeyes、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes所以默认我们外网是无法访问的,如需外网连接redis服务则需要将此属性改为no
    timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能loglevel
    logleveldebug、verbose、notice、warning日志级别,默认为notice
    databases16设置数据库的数量,默认的访问数据库是0,整个通过客户端工具可以看得到
    rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
    dbfilenamedump.rdb指定本地数据库文件名,默认值为dump.rdb
    dir指定本地数据库存放目录
    requirepass设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过“AUTH ”命令提供密码,默认关闭
    maxclients0设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回“max number of clients reached”错误信息
    maxmemory指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区。
  • 相关阅读:
    单张图像3D重建:原理与PyTorch实现
    JdbcTemplate操作数据库
    vue.js毕业设计,基于vue.js前后端分离在线考试系统(H5移动项目) 开题报告
    新外卖霸王餐小程序、H5、微信公众号版外卖系统源码
    手把手教你:轻松打造沉浸感十足的动态漫反射全局光照
    Java常用类的使用
    springBoot全局异常定义
    AIGC: 2 语音转换新纪元-Whisper技术在全球客服领域的创新运用
    从执行class文件开始认识JVM
    Java Day9 Stream流
  • 原文地址:https://blog.csdn.net/lili40342/article/details/127852124