首页 > 数据库 > 部署堡垒机4——编译安装redis-6.0.9以上版本

部署堡垒机4——编译安装redis-6.0.9以上版本

时间:2023-02-21 23:12:17浏览次数:58  
标签:redis 编译 复制 jedis usr 6.0 local port

一、环境准备

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

历史版本:http://download.redis.io/releases/

1、安装依赖

yum -y install gcc gcc-c++ make cmake lrzsz 

2、解压redis

tar zxvf redis-6.0.1.tar.gz

二、redis编译安装

1、编译redis

cd redis-6.0.1 &&  make

redis6需要较高版本的gcc编译

如果make失败,需要手动升级gcc版本(redis5以下的不需要升级)

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile  ## gcc版本永久生效

2、安装redis

make install PREFIX=/usr/local/redis

3、拷贝redis.conf

mkdir /usr/local/redis/etc
cp redis.conf /usr/local/redis/etc

4、启动redis

nohup /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf  2>&1 &

三、redis环境配置

1、配置环境变量 

## 在 /etc/profile 后添加
REDIS_HOME=/usr/local/redis/
PATH=$PATH:$REDIS_HOME/bin

2、开机自启配置

## 在 /etc/rc.local 下添加
echo never > /sys/kernel/mm/transparent_hugepage/enabled
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

3、其他配置

# 注释掉绑定ip,允许远程连接
bind 127.0.0.1 # 注释掉这句
# 允许后台运行
daemonize yes
# 关闭保护模式,否则外部ip无法连接
protected-mode no
# 防火墙开启redis端口,默认6379
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
# 内存设置
echo 8192 > /proc/sys/net/core/somaxconn ## 最大内存8G
sysctl vm.overcommit_memory=1  ## 内存超出时开辟内存 
/etc/sysctl.conf 文件添加
vm.overcommit_memory = 1
# 密码设置 redis.conf 文件下添加
requirepass 123456
# 不重启设置密码(永久有效),登录之后输入
config set requirepass 123456
# 查询密码
config get requirepass
# 验证密码
auth 123456
# 登录时,验证登录输入一下
auth 123456

4、redis关闭方法

redis-cli shutdown
ps -ef | grep redis | grep -v grep | awk '{print $2}' | xargs kill -9
redis-cli -h 127.0.0.1 -p 6379 shutdown

四、redis系统服务

1、redis添加到系统服务

vi /lib/systemd/system/redis.service
[Unit]
Description=The redis-server Process Manager
Documentation=https://redis.io/
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
 
[Install]
WantedBy=multi-user.target

2、redis系统服务命令 

systemctl enable redis
systemctl start redis
systemctl stop redis
systemctl status redis

五、redis JavaAPI

1、Maven配置

      redis.clients
      jedis
      3.1.0

2、java连接 redis

import redis.clients.jedis.Jedis;

Jedis jedis = new Jedis("localhost");
jedis.auth("123456"); 
jedis.set("mmsi", "123456789");
//存储数据到列表中
 jedis.lpush("site-list", "Runoob");
 jedis.lpush("site-list", "Google");
 jedis.lpush("site-list", "Taobao");
// 获取存储的数据并输出
List list = jedis.lrange("site-list", 0 ,2);
for(int i=0; i keys = jedis.keys("*"); 
Iterator it=keys.iterator() ;   
while(it.hasNext()){   
   String key = it.next();   
   System.out.println(key);   
}

3、redis连接池

package com.xtd.utils.redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.Set;

public class RedisUtil {

    private static JedisPool jedisPool;

    private String ip = "127.0.0.1";

    private Integer port;
    private Integer maxIdle;
    private Long maxWait;

    public RedisUtil(Integer port) {
        this.port = port;
        this.maxIdle = 10;
        this.maxWait = -1L;
        initJedisPool();
    }

    public RedisUtil(String ip, Integer port) {
        this.ip = ip;
        this.port = port;
        this.maxIdle = 10;
        this.maxWait = -1L;
        initJedisPool();
    }

    public RedisUtil(String ip, Integer port, Integer maxIdle, Long maxWait) {
        this.ip = ip;
        this.port = port;
        this.maxIdle = maxIdle;
        this.maxWait = maxWait;
        initJedisPool();
    }

    public Jedis getJedis() {
        return jedisPool.getResource();
    }

    private void initJedisPool() {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxIdle(maxIdle);
        config.setMaxWaitMillis(maxWait);
        config.setMaxTotal(10000);
        jedisPool = new JedisPool(config, ip, port, 60000);
    }

    public static void main(String[] args) {
//        Jedis jedis = new RedisUtil("192.168.0.102", 6379).getJedis();
//        Jedis jedis = new RedisUtil("127.0.0.1", 6379).getJedis();
        Jedis jedis = new RedisUtil(6379).getJedis();
        jedis.select(0);
        Set set = jedis.keys("t_route_local-*");
        jedis.set("station_v1_01","station_v1_01;station,\\`date\\`,\\`time\\`,lat,long,visibility,air_temperature,wind_direction,wind_speed,air_pressure,precipitaion,sea_temperature,sea_salt,wave_period,wave_height;station_par,month_par");
        for (String s : set) {
//            jedis.del(s);
            System.out.println(s);
        }
        String value =  jedis.get("station_v1_01");
        System.out.println(value);
        System.out.println(set.size());
        jedis.close();
    }


}
  文章引自 https://cloud.tencent.com/developer/article/1818699

标签:redis,编译,复制,jedis,usr,6.0,local,port
From: https://www.cnblogs.com/Magiclala/p/17142868.html

相关文章

  • redis安装使用
    1、redis五大数据类型,开发必会的技能string字符串类型hash哈希类型,如同Python的dict(字典)Set无序集合Zset有序集合List双向列队,向右插入数据,向左,右提......
  • Redis一主多从哨兵模式
    首先配置一主多从示例如下:1、两台主机IP地址如下:主:192.168.3.81端口:6379从:192.168.3.82 端口:6379从:192.168.3.82 端口:6380  2、首先建立Redis数......
  • Redis IO多线程的简要测试结果
    RedisIO多线程的简要测试结果摘要最近想简单确认一下IO多线程的对吞吐量的提升情况.正好手头有鲲鹏的机器,所以想直接进行一下验证顺便用一下4216进行一下对比.......
  • windows下编译pdfium
    当前流程截至2023/2/20有效1、提前安装好工具链VS2017+SDK Win10SDK10.0.20348 +Gitforwindows+tortoisegit+代理2、下载depot_tools命令行中设置环境变......
  • windows下编译live555
    最近需要编译Live555库,在windows下编译完成后,在此记录。笔者的电脑系统是Windows10。首先在live555官网下载源码,下载链接是:LIVE555.COM。在该链接下,还有一个......
  • LaTex中编译时出现“ Undefined control sequence”问题
    问题描述:LaTex编译时突然编译不成功,并有以下提示“!Undefinedcontrolsequence.l.62\newl      ?”逐行排查问题发现无明显异常,不缺少package也不多什么......
  • redis数据类型-list类型
    字符串列表,按照插入的顺序进行排序,其底层是双向链表。常用场景简单队列评论列表/非实时榜单常用命令(https://try.redis.io/)lpush在列表头部插入元素llen获......
  • 2023最新版Selenium 4.6.0完整语法入门
    简介Selenium是一款强而有力的前端应用测试工具,也非常适合搭配Python作为网络爬虫的工具;Selenium可以模拟使用者所有浏览器操作的动作,包括输入文本、点击按钮及拖拽进度条......
  • 三主三从的redis集群迁移数据到单节点redis上的操作步骤
    1.查看redis集群信息[root@database01~]#redis-cli-c-h192.168.0.164-p6379192.168.0.164:6379>authc2b9d063b86153fd9436fb07d8b3801d9ea40629964c422a22aac5a......
  • redis探秘:选择合适的数据结构,减少80%的内存占用,这些点你get到了吗?
    ​redis作为目前最流行的nosql缓存数据库,凭借其优异的性能、丰富的数据结构已成为大部分场景下首选的缓存工具。由于redis是一个纯内存的数据库,在存放大量数据时,内存的占用......