Redis——Java客户端配置

2023-09-21 11:30:00

概要

由于Redis服务器在官网公开了RESP协议,因此第三方可以通过这个协议来实现和Redis服务器通信的客户端程序,而具体的通信逻辑也不需要我们去实现,只需要导入大佬的库即可

jedis就是封装了RESP协议,提供了一组api供我们使用

导入依赖

创建一个maven项目,然后导入下面这个jedis依赖

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>4.4.2</version>
</dependency>

映射端口

由于我们需要通过自己电脑的redis客户端,访问服务器的redis服务器,因此需要访问服务器的端口。

而redis的默认端口6379,默认情况下是被云服务器的防火墙保护起来的,外界无法进行访问。这个端口比tomcat的8080端口好入侵的多,我个人之前开启后就被黑客入侵了。。。只能给云服务器重装系统

因此想要解决这个问题,可以直接将Java程序打包成jar包放到云服务器上运行,但是这个过程十分繁琐,如果要修改程序还需要重新打包上传,因此个人推荐下面这个方法

使用ssh进行端口的映射,将服务器的6379端口映射到自己电脑的8888端口,ssh会进行端口的转发,将我们请求的数据包装成应用层数据报,通过22端口发送给服务器,服务器的ssh解析数据报后,就会交给6379端口数据

在这里插入图片描述
以上的端口转发只有ssh连接上才会生效,ssh断开后端口转发就会消失,这极大的保护了我们的服务器不被入侵

编写代码

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

public class RedisDemo {
    public static void main(String[] args) {
        //创建Redis连接池
        JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");

        //从Redis连接池取出连接
        try(Jedis jedis = jedisPool.getResource()){
            String pong = jedis.ping();
            System.out.println(pong);
        }
    }
}

在控制台看到如下信息,说明连接成功
在这里插入图片描述
上述的ip和端口号仅限于开发时这样写,如果项目部署到云服务器上则需要更改为对应的ip和6379端口

如果失败,需要去redis中配置

进入配置文件

 cd /etc/redis/
vim redis.conf

绑定的ip改为0.0.0.0
在这里插入图片描述
关闭保护模式
在这里插入图片描述

更多推荐

Hyperopt:分布式异步超参数优化(Distributed Asynchronous Hyperparameter Optimization)

1、概述在深度学习的训练模型过程中,参数的优化是一个比较繁琐的过程,一般使用网格搜索Gridsearch与人工搜索Manualsearch,所以这个参数优化有时候看起来就像太上老君炼丹,是一个有点玄的东西。那有没有一种可以自动去调优的工具呢?恩,本节介绍的这个Hyperopt工具就是这个用途。Hyperopt是一个Py

下一代实时数据库:Apache Doris 【一】简介

文章目录第1章Doris简介1.1Doris概述1.2Doris架构后记第1章Doris简介1.1Doris概述ApacheDoris由百度大数据部研发(之前叫百度Palo,2018年贡献到Apache社区后,更名为Doris),在百度内部,有超过200个产品线在使用,部署机器超过1000台,单一业务最大可达到上百TB

下一代实时数据库:Apache Doris 【二】编译与安装

文章目录第2章编译与安装2.1安装Docker环境2.2使用Docker开发镜像编译后记第2章编译与安装安装Doris,需要先通过源码编译,主要有两种方式:使用Docker开发镜像编译(推荐)、直接编译。直接编译的方式,可以参考官网:https://doris.apache.org/zh-CN/installing/c

vuex的state,getters,mutations,actions,modules

目录Vuex核心概念:1、State1)全局state2)使用modules中的state2、Getters1)全局Getters2)使用modules中的getters3、Mutations1)全局Mutations2)使用modules中的mutations(namespaced:true)4、Actions1)全

Day69:283. 移动零、11. 盛最多水的容器、42. 接雨水

283.移动零leetcode链接:https://leetcode.cn/problems/move-zeroes/给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例1:输入:nums=[0,1,0,3,12]输出:[1,3

华为云云耀云服务器L实例评测|怎么搭建企业综合Web平台

前言记得2019年,公司搞混合云的时候,测试过多家公有云,其中就有华为云。因公司也在深圳,项目也比较急,我司业务上云经验又不足,华为官方获悉情况后,第二天就派了4人小团队到我司来交流,整个交流过程非常流畅,从华为云的优势,华为POP点到我司机房网络,我司金融Web业务的特点,金融行业的通用迁云经验,甚至到后台团队连线,

数据库的模糊查询

命中率越高–策略越好数据库的模糊查询work918在SQL中,模糊查询可以使用LIKE关键字来实现。LIKE关键字后面可以跟一个模式,其中%表示任意数量的字符,_表示一个字符。例如,如果你想在一个名为students的表中查找所有名字以Li开头的学生,你可以这样做:SELECT*FROMstudentsWHEREnam

uview组件库的安装

更多的请查看官方文档uView2.0-全面兼容nvue的uni-app生态框架-uni-appUI框架(uviewui.com)//如果您的根目录没有package.json文件的话,请先执行如下命令://npminit-y安装npminstalluview-ui@2.0.36//更新//npmupdateuview-

【基本数据结构 四】线性数据结构:队列

学习了栈后,再来看看第四种线性表结构,也就是队列,队列和栈一样也是一种受限的线性表结构,和栈后进先出的操作方式不同的是,队列是FIFO的结构,也就是先进先出的操作方式。队列的定义队列这个概念非常好理解。可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的“队列”.栈只支持两个基本

在Docker中使用MindSpore GPU版本

文章目录在Docker中使用MindSporeGPU版本获取安装命令安装安装nvidia-container-toolkit获取MindSpore镜像测试运行MindSpore镜像运行代码使用VSCode开发在Docker中使用MindSporeGPU版本参考官方文档:安装指南获取安装命令如图所示命令为dockerpu

【深入理解ES6】函数

箭头函数这是ES6中引入的一个有趣的新特性。箭头函数,顾名思义就是一种使用箭头(=>)定义的新语法,与传统函数的差别如下:没有this、super、arguments和new.target绑定,他们由外围最近一层非箭头函数决定。不能通过New关键字调用。箭头函数没有construct方法,所以不能用作构造函数。没有原型

热文推荐