自学内容网 自学内容网

【Redis入门到精通五】Java如何像使用MySQL一样使用Redis(jedis安装及使用)

目录

Jedis

1.jedis是什么

2.jedis的安装配置

3.jedis的基础命令操作展示

1.set和get操作:

2.exists和del操作:

 3.keys和type操作:

4. expire和ttl:


Jedis

        Java 操作 redis 的客⼾端有很多,其中最知名的是 jedis。把下面代码拷贝到Maven项目的pom.xml文件中就可以引入jedis的依赖了。
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
 <version>4.3.2</version>
</dependency>

1.jedis是什么

       Java操作MySQL的方式我们经常使用JDBC或者Mybatis,同样redis除了命令行操作的方式之外也提供了一组api,可以供我们实现定制化的redis客户端程序,进一步操作redis服务器。jedis就是大佬们基于这套api写出来的供Java操作redis服务器的一个开源库,我们可以使用这个库中封装好的方法来在IDEA中实现对redis服务器的操作。

为什么Redis我们可以定制化实现客户端程序,像我们经常使用的QQ,王者荣耀之类的程序不能定制化客户端呢?

        这是因为redis是一种客户端-服务器结构的程序,客户端和服务器之间的访问是通过网络通信,网络通信的过程中,会用到很多的协议,这些协议可以分为应用层,传输层,网络层,数据链路层,物理层五种,靠下层的四种协议一般都是在系统内核或者驱动程序中实现的,我们在设计应用的过程中只能选择不能修改,但是像应用层的协议,更多的时候,程序的设计者们会自定义协议的内容,Redis此处就是使用自定义的应用层协议,传输层选择的TCP协议。之所以客户端和服务器之间能够使用网络通信,是因为开发客户端的人和开发服务器的人都知道协议的细节,能够很好的实现对通信内容的包装和解析。Redis自定义的应用层协议叫做RESP,可以在Redis官方文档查询到,正是因为Redis把自定义的应用层协议公开了出来,我们才能实现自定义的实现与服务器通信的Redis客户端。

2.jedis的安装配置

0.准备工作,启动云服务器上的redis程序,并利用ssh端口转发将端口映射到主机。在xshell中右键会话属性,选择SSH中的隧道功能,如下图所示:当ssh与服务器连接生效时。本机的8888端口便可以生效了。

可以在本地主机上敲以下命令观察是否生效。

tips:如果大家购买的带有公网ip的云服务器,尽量不要尝试将防火墙关闭把redis的端口对外开放,因为redis自带的防入侵的安全功能很少,极易被黑客入侵。

1.第一步首先创建一个Maven项目,直接把文章开篇的依赖复制进入pom.xml文件中,并点击右上方的刷新按钮,idea就会自动从Maven的中央仓库拉取jedis的相关代码到本地仓库。

 2.第二步建立与Redis服务器的连接,如下所示

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


public class RedisDemo {
    public static void main(String[] args) {
        JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");
        try(Jedis jedis=jedisPool.getResource()){//从redis连接池中取出一个连接,并自动释放。
              //此时便可以使用jedis对象中的方法来操作redis服务器了。
            String pong=jedis.ping();
            System.out.println(pong);
        }
    }
}

然后便可以验证程序了。 

 

3.jedis的基础命令操作展示

1.set和get操作:
        JedisPool jedisPool=new JedisPool("tcp://127.0.0.1:8888");
        try(Jedis jedis=jedisPool.getResource()){//从redis连接池中取出一个连接,并自动释放。
              //此时便可以使用jedis对象中的方法来操作redis服务器了。
//            String pong=jedis.ping();
//            System.out.println(pong);
              testGetSet(jedis);
        }
    }
    private static void testGetSet(Jedis jedis){
        jedis.flushDB();//清库操作

        jedis.set("key1","value1");
        jedis.set("key2","value2");

        String value1 =jedis.get("key1");
        System.out.println(value1);

        String value2=jedis.get("key2");
        System.out.println(value2);

        String value3=jedis.get("key3");
        System.out.println(value3);
    }

执行上述代码,便可以得到下面结果。 

2.exists和del操作:
    private static  void testExistsAndDel(Jedis jedis){
        jedis.flushDB();
        jedis.set("key1","value");
        jedis.set("key2","value");
        jedis.set("key3","value");
        boolean ret = jedis.exists("key1");
        System.out.println(ret);
        long n=jedis.del("key1");
        System.out.println(n);
        ret=jedis.exists("key1");
        System.out.println(ret);
        n=jedis.del("key2","key3");
        System.out.println(n);
        ret=jedis.exists("key2");
        System.out.println(ret);
    }

 执行上述代码的运行结果:

 3.keys和type操作:
    private static void keysAndType(Jedis jedis){
        jedis.flushDB();
        jedis.set("key1", "value");
        System.out.println(jedis.type("key1"));
        jedis.lpush("key2", "a", "b", "c");
        System.out.println(jedis.type("key2"));
        jedis.hset("key3", "name", "zhangsan");
        System.out.println(jedis.type("key3"));
        jedis.sadd("key4", "111", "222", "333");
        System.out.println(jedis.type("key4"));
        jedis.zadd("key5", 1, "aaa");
        System.out.println(jedis.type("key5"));
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);
        keys = jedis.keys("key?");
        System.out.println(keys);
    }

执行上述代码: 

4. expire和ttl:
    private static void expireAndTTL(Jedis jedis) throws InterruptedException {
        jedis.setex("key",60,"value");
        long ttl=jedis.ttl("key");
        System.out.println(ttl);
        Thread.sleep(3000);
        ttl=jedis.ttl("key");
        System.out.println(ttl);
    }

执行上述代码操作: 

❤️😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍😍

🍔我是小皮侠,谢谢大家都能看到这里!!

🦚主页已更新Java基础内容,数据结构基础,数据库,算法

🚕未来会更新Java项目,SpringBoot,Redis以及各种Java路线会用到的技术。

🎃求点赞!求收藏!求评论!求关注!

🤷‍♀️谢谢大家!!!!!!!


原文地址:https://blog.csdn.net/2203_75565612/article/details/142460250

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!