Linux 下 Redis 安装教程_redis.service: failed with result 'exit-code'.-程序员宅基地

技术标签: 教程/入门使用  linux  计网/计操  数据库  redis  

笔者的运行环境:

  • 安装成功过的 Redis:

    • Redis 7.0.11

    • Redis 6.2.5

  • 安装成功过的 Linux:

    • RedHat Enterprise Linux 9 x86_64

    • CentOS 8 x86_64

    • CentOS Stream 8 x86_64

事先准备

  1. 进行这个教程之前,必须要先安装好一个 Linux 操作系统。这个 Linux 操作系统可以安装在虚拟机中,也可以安装在真实的电脑中。关于这方面的内容,可见笔者的其它博客:

    各种操作系统安装教程大全:
    https://blog.csdn.net/wangpaiblog/article/details/115436520

    为了方便远程输入命令、将文件加入到 Linux 操作系统中,最好还要在一台 Windows 操作系统上面使用一种终端控制软件,如 Xshell、Xftp 等。关于这方面的内容,可见笔者的另一篇博客:

    如何在 Windows 主机上访问本地局域网中的 Linux 主机:
    https://blog.csdn.net/wangpaiblog/article/details/120052152

  2. 一般来说,安装一个软件有 4 种方法:离线安装、在线安装、离线免安装、编译安装。通常,离线安装是最好的方法,同时也通常是笔者的首选,但本文使用的是编译安装方法。原因是,在 Redis 的官网中就只给出了这一种文件包。

下载 Redis

  1. 打开 Redis 官网,找到 Redis 的最新稳定版来下载。在笔者编写本博客时,Redis 的最新稳定版为 6.2.5。具体的流程如下面的图片所示。

    Redis 官网:https://redis.io/

    Redis 官方文档:https://redis.io/docs/

    Redis 下载处的最终网址:

    在这里插入图片描述

  2. 下载完成之后,会得到约为 2.5M 的文件 redis-6.2.5.tar.gz。这个大小看起来像下载的是一种在线安装包。但是没错!这就是 Redis 的离线免安装包。一般来说,对于 Red Hat 操作系统,在线安装包会以 rpm 为后缀,离线安装包会以 rpm(单安装包)或 tar(多依赖安装包)为后缀,而免安装包则为双后缀 .tar.gz

安装 Redis

  1. 先不要急着安装 Redis。Redis 是用 C 语言编写的,碰巧 Linux 也几乎如此。而 Redis 的安装需要借助 GCC 进行编译,而 Linux 上可能已经安装了 GCC 了。因为有些 Linux 会内置 GCC,而有些软件在安装时会自动安装 GCC。对于 Redis 6 以上,GCC 的版本要在 5.3 以上。所以需要先检查 Linux 中 GCC 的版本。

    输入如下命令查看 Linux 中 GCC 的版本:

    gcc --version

    [root@192 ~]# gcc --version
    gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4)
    Copyright  2021 Free Software Foundation, Inc.
    本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
    包括没有适销性和某一专用目的下的适用性担保。
    

    可以看出,笔者的操作系统的 GCC 版本为 11.3.1,符合要求。如果读者的 Linux 中没有 GCC,可以输入以下命令安装 GCC:

    yum -y install gcc


    【踩坑提醒】

      对于读者的某些 Linux 操作系统,此处安装 GCC 可能会报错,解决方案可参考笔者的另一篇博客:

      解决 CentOS 8 使用 yum 安装 rpm 报错 Cannot prepare internal mirrorlist No URLs in mirrorlist:
    https://blog.csdn.net/wangpaiblog/article/details/131118012


  2. 将下载完的 .tar.gz 包通过 Xftp 传入 Linux 中。

    使用如下命令进入目录 Redis 压缩包所在目录:(下面的 Redis 压缩包所在目录 要改成实际的目录)

    cd Redis 压缩包所在目录

  3. 使用如下命令解压 gz 包:

    tar -xzvf redis-6.2.5.tar.gz

  4. 使用如下命令进入解压后的目录:

    cd redis-6.2.5

  5. 解压后的目录中有两个重要的文件。这两个文件请务必记住,下面将用到。

    • redis.conf。此文件是 Redis 服务端启动所必需的一个配置文件。

    • utils/redis_init_script。此文件是一种 Redis 的启动、中止便捷脚本,但该脚本文件不是 Redis 启动所必需的文件。它是官方为了方便开发人员自行设置 Redis 开机自启动而提供的脚本。如果不需要 Redis 开机自启动功能,则此脚本不是必需的。

      此脚本的内容很简单。如果读者对 Redis 的运行配置有特殊要求,可以自行编写一个启动脚本。

  6. 依次输入如下命令编译并安装 Redis:(如果没有安装 GCC 或者版本不正确,则下面的命令运行时会出错)

    make

    make install PREFIX=/usr/local/redis

    上述命令将会在目录 /usr/local/redis/bin 中生成 Redis 的可执行文件。此目录也就是 Redis 命令所在目录此目录请务必记住,下面将用到。

    实际上,命令 make install PREFIX=... 设置的目录就是 Redis 的安装目录。而 Redis 命令目录 就是 Redis 安装目录/bin


    【踩坑提醒】

      此目录不能随意设定,最好位于以 /usr/local/ 开头的目录中,否则会导致 Redis 自启动时报错 Permission denied

    [root@192 ~]# systemctl status redis.service
    × redis.service - redis-server
         Loaded: loaded (/etc/systemd/system/redis.service; enabled; preset: disabled)
         Active: failed (Result: exit-code) since Fri 202X-XX-XX XX:XX:XX CST; Xmin XXs ago
        Process: 980 ExecStart=/XXX/bin/redis-server /XXX/conf/redis.conf (code=exited, status=203/EXEC)
            CPU: 5ms
    
    X月 XX XX:XX:XX localhost systemd[1]: Starting redis-server...
    X月 XX XX:XX:XX localhost systemd[980]: redis.service: Failed to locate executable /XXX/bin/redis-server: Permission denied
    X月 XX XX:XX:XX localhost systemd[980]: redis.service: Failed at step EXEC spawning /XXX/bin/redis-server: Permission denied
    X月 XX XX:XX:XX localhost systemd[1]: redis.service: Control process exited, code=exited, status=203/EXEC
    X月 XX XX:XX:XX localhost systemd[1]: redis.service: Failed with result 'exit-code'.
    X月 XX XX:XX:XX localhost systemd[1]: Failed to start redis-server.
    

  7. 在 Linux 中设置 Redis 的环境变量。

    一个偷懒的方法是将环境变量添加在文件 /etc/profile 中。之所以说偷懒,是因为一旦升级或重装了 Linux 操作系统,这个文件就会被重置。

    最好的方法是将自设的环境变量放到 $HOME/ 下的缀为 .bash 的一系列文件中。不过笔者有时也偷懒。

  8. 在 Linux 中设置 Redis 的环境变量偷懒方法:

    在文件 /etc/profile 尾追加以下内容:(注意:修改前最好先备份,以免发生误修改)

    export PATH=$PATH:/usr/local/redis/bin
    

    在文件 /etc/profile 中追加路径正是上面生成的 Redis 命令目录

  9. 现在需要验证一下环境变量有没有设置成功,但先不要着急验证,因为文件 /etc/profile 在 Linux 启动时才会被读取。可以使用以下方法来使环境变量生效。

    • 使用命令 source:

      source /etc/profile

    • 重启。重启的方法有很多,也可以使用命令 reboot

  10. 验证环境变量。这种方法有很多,只举几例。

    • 输入以下命令。如果输出了前面的设置,说明前面的环境变量设置成功。

      echo $PATH

    • 输入以下命令。如果输出了相应的路径(就是前面生成的 Redis 命令目录/redis-cli),说明前面的环境变量设置成功。

      which redis-cli

      [root@localhost ~]# which redis-cli
      /usr/local/redis/bin/redis-cli
      
  11. 将上面提到的文件 redis.conf 复制到读者喜欢的目录中,这里设为 /usr/local/redis/conf,也就是 Redis 安装目录/conf

    mkdir -p /usr/local/redis/conf

    cp redis.conf /usr/local/redis/conf

设置 Redis 开机自启动

  1. 此部分的内容对不同的 Linux 会有不同。前面提到过,Redis 是免安装的,因此它不可能像很多软件一样能自动设置开机启动。对于手动设置开机的方式,不同的 Linux 会有很大差异。但它们关于 Redis 的那部分操作是相同的,只是设置 Redis 开机自启动那部分是不同的。

    关于 Linux 下设置开机自启动的方法,可见笔者的另一篇博客:

    Linux 下设置开机自启动的方法:
    https://blog.csdn.net/wangpaiblog/article/details/132137332

    现在,假设读者已经熟悉 Linux 下设置开机自启动的一般流程,下面的讲解将跳过某些重复的内容。

  2. 修改前面复制后的文件 /usr/local/redis/conf/redis.conf。将该文件中的 daemonize no 改为 daemonize yes。这是为了将 Redis 作为守护进程来运行,便于开机启动。

    在这里插入图片描述

对于普通的 Linux

  1. 将前面提到的文件 utils/redis_init_script 复制到 Linux 的启动目录 init.d 中,并重命名为 redis。然后对其添加执行权限。

    cp utils/redis_init_script /etc/init.d/redis

    chmod +x /etc/rc.d/init.d/redis

  2. 对此文件 utils/redis_init_script 进行修改。在该文件中需要改动 3 处。之所以这样改动,是因为这些目录中涉及前面生成的 Redis 的可执行文件以及文件 redis.conf。在 Redis 启动脚本

    (注意:EXEC、CLIEXEC 的路径是没有引号的,CONF 的路径是引号的。)

    • EXEC:将 EXEC 行的路径改为 /usr/local/redis/bin/redis-server

    • CLIEXEC:将 CLIEXEC 行的路径改为 /usr/local/redis/bin/redis-cli

    • CONF:将 CONF 行的路径改为 "/usr/local/redis/conf/redis.conf"

    在这里插入图片描述

  3. 设置 Redis 开机自启动。

    chkconfig redis on

  4. 输入以下命令验证是否成功设置了 Redis 开机自启动:

    chkconfig --list

    如果输出结果含 redis,且 3、4、5 值均为 ,说明设置成功。输出如下所示:

    redis 0:关 1:关 2:开 3:开 4:开 5:开 6:关

  5. 重启电脑试一下是否真正成功。输入以下命令重启电脑:

    reboot

    重启后,马上输入以下命令:

    netstat -na | grep 6379

    [root@localhost ~]# netstat -na | grep 6379
    tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN     
    tcp6       0      0 ::1:6379                :::*                    LISTEN 
    

    如果输出了端口 6379 被使用的信息,说明 Redis 开机自启动成功。

对于 RedHat Enterprise Linux 9

  1. 对于一些较新的 Linux,它没有提供上面的启动目录 init.d,而是改为使用服务来启动,这样设计要规范一些。对于使用服务来启动,需要编写一个 .service 文件放置在目录 /etc/systemd/system 下,并使用 systemctl 命令来控制这个服务。

  2. 使用如下命令在目录 /etc/systemd/system 下创建一个关于 Redis 的 .service 文件。

    touch /etc/systemd/system/redis.service

  3. 编辑该文件,在其中写入如下内容。

    [Unit]
    Description=redis-server
    After=network.target
    
    [Service]
    ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
    ExecReload=/usr/local/redis/bin/redis-server -s reload
    ExecStop=/usr/local/redis/bin/redis-server -s stop
    PrivateTmp=true
    Type=forking
    
    [Install]
    WantedBy=multi-user.target
    

    读者需要根据前面自己安装 Redis 时各个文件的存放位置来分别修改 ExecStart、ExecReload、ExecStop 的值。

    其中,ExecStart 代表 Redis 后台服务的启动命令。

    提示:Redis 后台服务的启动命令的格式为:redis-server 的路径 + 空格 + redis.conf 的路径


    【踩坑提醒】

      不能因为前面在文件 /etc/profile 设置了 Redis 的环境变量,此处 redis-server 就不使用全路径了。文件 /etc/profile 是在每一个用户登录 Shell 时才会读取的。在 Linux 启动之时此文件中的环境变量不会起作用。

      如果想在 Linux 启动时使用环境变量,可以将此环境变量单独放入一个文件(不妨设为 /etc/systemd/system/redisenv.conf)中,然后在本 .service 文件 /etc/systemd/system/redis.service 中的 [Service] 部分使用 EnvironmentFile 属性导入这个环境变量配置文件。

    [Service]
    EnvironmentFile=/etc/systemd/system/redisenv.conf
    

  4. Red Hat 内置了 SELinux(Security-Enhanced Linux)来保障 Linux 的安全,但这有可能会让目录 /etc/systemd/system 中的服务因权限不足无法启动,从而发生如下报错。

    [root@192 ~]# systemctl status redis.service
    × redis.service - redis-server
         Loaded: loaded (/etc/systemd/system/redis.service; enabled; preset: disabled)
         Active: failed (Result: exit-code) since Fri 202X-XX-XX XX:XX:XX CST; Xmin XXs ago
        Process: 980 ExecStart=/XXX/bin/redis-server /XXX/conf/redis.conf (code=exited, status=203/EXEC)
            CPU: 5ms
    
    X月 XX XX:XX:XX localhost systemd[1]: Starting redis-server...
    X月 XX XX:XX:XX localhost systemd[980]: redis.service: Failed to locate executable /XXX/bin/redis-server: Permission denied
    X月 XX XX:XX:XX localhost systemd[980]: redis.service: Failed at step EXEC spawning /XXX/bin/redis-server: Permission denied
    X月 XX XX:XX:XX localhost systemd[1]: redis.service: Control process exited, code=exited, status=203/EXEC
    X月 XX XX:XX:XX localhost systemd[1]: redis.service: Failed with result 'exit-code'.
    X月 XX XX:XX:XX localhost systemd[1]: Failed to start redis-server.
    

    解决办法是修改文件 /etc/selinux/config,将其中的属性 SELinuxenforcing 改为 disabled。然后重启 Linux。

    在这里插入图片描述

  5. 依次输出以下命令设置 Redis 开机自启动:

    systemctl daemon-reload

    systemctl enable redis.service

  6. 重启电脑试一下是否真正成功。输入以下命令重启电脑:

    reboot

    重启后,马上输入以下命令:

    netstat -na | grep 6379

    [root@localhost ~]# netstat -na | grep 6379
    tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN     
    tcp6       0      0 ::1:6379                :::*                    LISTEN 
    

    如果输出了端口 6379 被使用的信息,说明 Redis 开机自启动成功。

远程访问 Redis

  1. Linux 通常作为服务器操作系统,一般希望能使用远程使用 Redis。不过,Linux 上有防火墙,默认会阻止远程对 Redis 的连接。实际上,它会阻止所有的远程连接。对于笔者的 RedHat Enterprise Linux 9 x86_64,默认的防火墙为 firewalld,而不是 iptables。(很多早期的 Linux,使用的防火墙是 iptables,但 RedHat 从 RHEL 7 开始就用 firewalld 取代了 iptables。)

    • 一个偷懒的方法就是,永久地关闭防火墙。关闭的方法如下:

      systemctl stop firewalld

      systemctl mask firewalld

      firewall-cmd --reload

    • 另一个方法是,在防火墙中永久开放 MySQL 的默认端口 6379。开放的方法如下:

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

      firewall-cmd --reload

      单独开放完端口 6379 之后,可以输入以下命令查看是否生效:

      firewall-cmd --zone=public --query-port=6379/tcp

      [root@localhost temp]# firewall-cmd --zone=public --query-port=6379/tcp
      yes
      

      实际上,也可以输入以下命令查看所有开放的端口:

      firewall-cmd --zone=public --list-ports

      [root@localhost temp]# firewall-cmd --zone=public --list-ports
      6379/tcp
      
  2. 对于常规的软件,一般这样设置就可以了,但作为数据库的 Redis 还要求进行额外设置。

  3. 打开前面提到的文件 /usr/local/redis/conf/redis.conf,将其中的 protected-mode 的值改为 no

    在这里插入图片描述

  4. 继续修改此文件 redis.conf。将其中没有被注释掉的 bind 127.0.0.1 那行注释掉。将 bind 全部注释掉之后就会开放所有的客户端连接。当然,为了安全,最好是选择开放指定的与 Redis 绑定的客户端,但偷懒的笔者没有当时选择这样做。


    【注意】

      bind 是用于指定与 Redis 绑定的客户端 IP,也就是运行本 Redis 的主机 IP。如果设置了此项,其它主机就可以通过本机 IP 来远程访问本机的 Redis 服务。也就是说,bind 只是用于指定与本机 Redis 通信时,可用的 IP 目的地址,而不是 IP 源地址(即不是指定哪些外界 IP 可以访问本机的 Redis)


    在这里插入图片描述

  5. 重启 Redis 来使上述配置生效。可以依次使用终止、启动 Redis 来实现重启。


    【附】

    • Redis 的手动启动命令是:service redis start

    • Redis 的手动终止命令是:service redis stop


  6. 现在可以尝试远程访问 Redis 端口号。可以在本地客户端输入以下命令来验证:

    ssh -v -p Redis 端口号 Redis 所在 Linux 的 IP

    下面在 Windows 的 CMD 中,访问 Linux 上 Redis 的本地端口号。这里,笔者 Redis 所在 Linux 的 IP 为 192.168.0.100,Redis 本地端口号为 6379。

    注意:这里不是在 Windows 中使用 Xshell 对 Redis 的端口号进行访问。在 Windows 中使用 Xshell 进行访问是一种 Linux 远程访问,但那不是一种 Redis 本地端口号的远程访问。

    如果访问成功,输出信息为:

    C:\Users\XXX>ssh -v -p 6379 192.168.0.100
    OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
    debug1: Connecting to 192.168.0.100 [192.168.0.100] port 6379.
    debug1: Connection established.
    debug1: identity file C:\\Users\\XXX/.ssh/id_rsa type 0
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_rsa-cert type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_dsa type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_dsa-cert type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_ecdsa type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_ecdsa-cert type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_ed25519 type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_ed25519-cert type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_xmss type -1
    debug1: key_load_public: No such file or directory
    debug1: identity file C:\\Users\\XXX/.ssh/id_xmss-cert type -1
    debug1: Local version string SSH-2.0-OpenSSH_for_Windows_7.7
    debug1: ssh_exchange_identification: -ERR unknown command `SSH-2.0-OpenSSH_for_Windows_7.7`, with args beginning with:
    

    如果访问不成功,输出信息为:

    C:\Users\XXX>ssh -v -p 6379 192.168.0.100
    OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
    debug1: Connecting to 192.168.0.100 [192.168.0.100] port 6379.
    debug1: connect to address 192.168.0.100 port 6379: Connection refused
    ssh: connect to host 192.168.0.100 port 6379: Connection refused
    

用 RedisInsight 远程访问 Redis

  1. RedisInsight 是 Redis 的官方 GUI 软件,该软件目前是免费的。

  2. 下载后打开软件,建立连接。

    在这里插入图片描述

  3. 按下图填写信息,先测试连接是否可用。如果连接过程中,出现了无响应的状态,这是正常现象,耐心等待即可。

    在这里插入图片描述

  4. 如果连接可用,就可以建立连接了。

    在这里插入图片描述

    在这里插入图片描述

用 RDM 远程访问 Redis

  1. 和其它数据库一样,Redis 也有自己的 GUI 软件 Redis Desktop Manager(简称 RDM)。很遗憾也很奇怪的是,该软件现在下载不是免费的,但却是开源的。开源意味着可以使用开发工具来生成该软件的安装包。也许开发者们曾经也在开源与收费中徘徊。

    (笔者不打算让简单问题复杂化,去教读者如何生成 RDM 的安装包,这需要下载 VS 、Qt。但笔者在编写本教程时已经有了安装包了。)


    【2023年7月21日 更新】

      很遗憾,RDM 的作者 uglide 已加入 Redis 团队,而本软件也顺理成章的并入 Redis 开发团队中,并改名为 RESP.app

      但问题是,Redis 官方已经有了一个官方 GUI 应用 RedisInsight,因此 RDM 现在已经不再更新。RDM 的官网已经在醒目的地方推荐了 RedisInsight,而 RDM 的源码地址已经被放到了角落里。


  2. 打开软件,建立连接。

    在这里插入图片描述

  3. 按下图填写信息,先测试连接是否可用。如果连接过程中,出现了无响应的状态,这是正常现象,耐心等待即可。

    在这里插入图片描述

    在这里插入图片描述

  4. 如果连接可用,就可以建立连接了。

    在这里插入图片描述

后置附录

Redis 相关目录

前面安装 Redis 涉及了很多目录,这里来总结一下这些目录信息。

  • Redis 安装目录:/usr/local/redis

  • Redis 命令(可执行文件)目录:Redis 安装目录/bin

  • Redis 启动配置文件:

    原位置:Redis 压缩包解压后目录/redis.conf

    安装后的位置:Redis 安装目录/conf/redis.conf

  • Redis 开机自启动脚本:

    原位置:Redis 压缩包解压后目录/utils/redis_init_script

    安装后的位置(如果用到的话):/etc/init.d/redis

其它目录:

  • Linux 开机自启动目录

    • 普通的 Linux:/etc/init.d,也即 /etc/rc.d/init.d

    • RedHat Enterprise Linux 9:/etc/systemd/system

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangpaiblog/article/details/120279139

智能推荐

软件测试流程包括哪些内容?测试方法有哪些?_测试过程管理中包含哪些过程-程序员宅基地

文章浏览阅读2.9k次,点赞8次,收藏14次。测试主要做什么?这完全都体现在测试流程中,同时测试流程是面试问题中出现频率最高的,这不仅是因为测试流程很重要,而是在面试过程中这短短的半小时到一个小时的时间,通过测试流程就可以判断出应聘者是否合适,故在测试流程中包含了测试工作的核心内容,例如需求分析,测试用例的设计,测试执行,缺陷等重要的过程。..._测试过程管理中包含哪些过程

政府数字化政务的人工智能与机器学习应用:如何提高政府工作效率-程序员宅基地

文章浏览阅读870次,点赞16次,收藏19次。1.背景介绍政府数字化政务是指政府利用数字技术、互联网、大数据、人工智能等新技术手段,对政府政务进行数字化改革,提高政府工作效率,提升政府服务质量的过程。随着人工智能(AI)和机器学习(ML)技术的快速发展,政府数字化政务中的人工智能与机器学习应用也逐渐成为政府改革的重要内容。政府数字化政务的人工智能与机器学习应用涉及多个领域,包括政策决策、政府服务、公共安全、社会治理等。在这些领域,人工...

ssm+mysql+微信小程序考研刷题平台_mysql刷题软件-程序员宅基地

文章浏览阅读219次,点赞2次,收藏4次。系统主要的用户为用户、管理员,他们的具体权限如下:用户:用户登录后可以对管理员上传的学习视频进行学习。用户可以选择题型进行练习。用户选择小程序提供的考研科目进行相关训练。用户可以进行水平测试,并且查看相关成绩用户可以进行错题集的整理管理员:管理员登录后可管理个人基本信息管理员登录后可管理个人基本信息管理员可以上传、发布考研的相关例题及其分析,并对题型进行管理管理员可以进行查看、搜索考研题目及错题情况。_mysql刷题软件

根据java代码描绘uml类图_Myeclipse8.5下JAVA代码导成UML类图-程序员宅基地

文章浏览阅读1.4k次。myelipse里有UML1和UML2两种方式,UML2功能更强大,但是两者生成过程差别不大1.建立Test工程,如下图,uml包存放uml类图package com.zz.domain;public class User {private int id;private String name;public int getId() {return id;}public void setId(int..._根据以下java代码画出类图

Flume自定义拦截器-程序员宅基地

文章浏览阅读174次。需求:一个topic包含很多个表信息,需要自动根据json字符串中的字段来写入到hive不同的表对应的路径中。发送到Kafka中的数据原本最外层原本没有pkDay和project,只有data和name。因为担心data里面会空值,所以根同事商量,让他们在最外层添加了project和pkDay字段。pkDay字段用于表的自动分区,proejct和name合起来用于自动拼接hive表的名称为 ..._flume拦截器自定义开发 kafka

java同时输入不同类型数据,Java Spring中同时访问多种不同数据库-程序员宅基地

文章浏览阅读380次。原标题:Java Spring中同时访问多种不同数据库 多样的工作要求,可以使用不同的工作方法,只要能获得结果,就不会徒劳。开发企业应用时我们常常遇到要同时访问多种不同数据库的问题,有时是必须把数据归档到某种数据仓库中,有时是要把数据变更推送到第三方数据库中。使用Spring框架时,使用单一数据库是非常容易的,但如果要同时访问多个数据库的话事件就变得复杂多了。本文以在Spring框架下开发一个Sp..._根据输入的不同连接不同的数据库

随便推点

EFT试验复位案例分析_eft电路图-程序员宅基地

文章浏览阅读3.6k次,点赞9次,收藏25次。本案例描述了晶振屏蔽以及开关电源变压器屏蔽对系统稳定工作的影响, 硬件设计时应考虑。_eft电路图

MR21更改价格_mr21 对于物料 zba89121 存在一个当前或未来标准价格-程序员宅基地

文章浏览阅读1.1k次。对于物料价格的更改,可以采取不同的手段:首先,我们来介绍MR21的方式。 需要说明的是,如果要对某一产品进行价格修改,必须满足的前提条件是: ■ 1、必须对价格生效的物料期间与对应会计期间进行开启; ■ 2、该产品在该物料期间未发生物料移动。执行MR21,例如更改物料1180051689的价格为20000元,系统提示“对于物料1180051689 存在一个当前或未来标准价格”,这是因为已经对该..._mr21 对于物料 zba89121 存在一个当前或未来标准价格

联想启天m420刷bios_联想启天M420台式机怎么装win7系统(完美解决usb)-程序员宅基地

文章浏览阅读7.4k次,点赞3次,收藏13次。[文章导读]联想启天M420是一款商用台式电脑,预装的是win10系统,用户还是喜欢win7系统,该台式机采用的intel 8代i5 8500CPU,在安装安装win7时有很多问题,在安装win7时要在BIOS中“关闭安全启动”和“开启兼容模式”,并且安装过程中usb不能使用,要采用联想win7新机型安装,且默认采用的uefi+gpt模式,要改成legacy+mbr引导,那么联想启天M420台式电..._启天m420刷bios

冗余数据一致性,到底如何保证?-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏9次。一,为什么要冗余数据互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量。水平切分会有一个patition key,通过patition key的查询能..._保证冗余性

java 打包插件-程序员宅基地

文章浏览阅读88次。是时候闭环Java应用了 原创 2016-08-16 张开涛 你曾经因为部署/上线而痛苦吗?你曾经因为要去运维那改配置而烦恼吗?在我接触过的一些部署/上线方式中,曾碰到过以下一些问题:1、程序代码和依赖都是人工上传到服务器,不是通过工具进行部署和发布;2、目录结构没有规范,jar启动时通过-classpath任意指定;3、fat jar,把程序代码、配置文件和依赖jar都打包到一个jar中,改配置..._那么需要把上面的defaultjavatyperesolver类打包到插件中

VS2015,Microsoft Visual Studio 2005,SourceInsight4.0使用经验,Visual AssistX番茄助手的安装与基本使用9_番茄助手颜色-程序员宅基地

文章浏览阅读909次。1.得下载一个番茄插件,按alt+g才可以有函数跳转功能。2.不安装番茄插件,按F12也可以有跳转功能。3.进公司的VS工程是D:\sync\build\win路径,.sln才是打开工程的方式,一个是VS2005打开的,一个是VS2013打开的。4.公司库里的线程接口,在CmThreadManager.h 里,这个里面是我们的线程库,可以直接拿来用。CreateUserTaskThre..._番茄助手颜色

推荐文章

热门文章

相关标签