jedis与redistemplate_第六十二卦详解

jedis与redistemplate_第六十二卦详解文章目录Redis详解(六)Jedis操作Redis1.下载jedis和commons-pool单独使用jedis2.Java应用使用Jedis准备Redis详解(六)Jedis操作Redis使用jedis在java应用中操作Redis。Jedis几乎涵盖了redis的所有命令。jedis源码:https://github.com/redis/jedis1.下载jedis和commons-pool<!–https://mvnrepository.com/artifact/redis.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Redis详解(六)Jedis操作Redis

使用jedis在java应用中操作Redis。Jedis几乎涵盖了redis的所有命令。

  • jedis源码:https://github.com/redis/jedis

1.下载jedis和commons-pool

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

jedis可以单独使用,一般和Commons-Pool一起使用,有多个线程单独操作redis。

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.11.1</version>
</dependency>

单独使用jedis

package com.firewolf;

import redis.clients.jedis.Jedis;

import java.util.List;

public class StringRedisPrimary { 
   
    public static void main(String[] args) { 
   
// redis所在的linux的ip
        String host = "127.0.0.1";
// redis的运行端口
        int port = 6379;
// 创建jedis对象,通过jedis的方法,操作redis数据
        Jedis jedis = new Jedis(host,port);
// 设置访问密码
// jedis.auth("123456");

// 通过jedis的方法操作redis数据
        jedis.set("eat","减脂餐");
// 获取数据
        System.out.println("eat="+jedis.get("eat"));
// 创建多个key-value
        jedis.mset("lunch","红烧牛肉面","dinner","左旋溜达鸡");
// 获取多个值
        List<String> values = jedis.mget("eat","lunch","dinner");

        for (String v:values){ 
   
            System.out.println(v);
        }
// 查询id=1 Student,key == student:1
        if(jedis.exists("student:1")){ 
   
            String  student = jedis.get("student:1");
        }else { 
   
// 访问数据库,Student 对象
// 把Student转为json数据
            jedis.set("student:1","{student}");
        }

    }
}

2.Java应用使用Jedis准备

创建一个工具类

package com.firewolf.utils;

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

public class RedisUtils { 
   
// JedisPool有一个就够用了
    private static JedisPool pool;
// 创建线程池
    public static JedisPool open(String host,int port){ 
   
        if(pool==null){ 
   
// 设置线程池的参数
            JedisPoolConfig config = new JedisPoolConfig();
// 设置最大线程数量
            config.setMaxTotal(100);
// 设置空闲数
            config.setMaxIdle(2);
// 设置检查项为true,避免null的情况 确保线程池获取的对象是可用的。
            config.setTestOnBorrow(true);
// 创建JedisPool 6000是超时时间:6秒钟没有连接到redis就放弃
            pool = new JedisPool(config,host,port,6000);
// 带密码情况
// pool = new JedisPool(config,host,port,6000,"123456");
        }
        return pool;
    }
  
// 关闭线程池,在整个程序结束后执行
    public static void close(){ 
   
        if(pool!=null){ 
   
            pool.close();
        }
    }
}

使用线程池

package com.firewolf;

import com.firewolf.utils.RedisUtils;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.List;

public class StringRedisPrimaryPool { 
   
    public static void main(String[] args) { 
   
        String host = "127.0.0.1";
        int port = 6379;

        Jedis jedis = null;
        JedisPool pool= null;

        try{ 
   
// 获取pool,从pool中获取jedis对象
            pool = RedisUtils.open(host,port);
            jedis = pool.getResource();
            jedis.set("eat","减脂餐");
// 获取数据
            System.out.println("eat="+jedis.get("eat"));
// 查询id=1 Student,key == student:1
            if(jedis.exists("student:1")){ 
   
                String  student = jedis.get("student:1");
            }else { 
   
// 访问数据库,Student 对象
// 把Student转为json数据
                jedis.set("student:1","{student}");
            }

        }finally { 
   
// 把使用完毕的jedis放回到Pool中,让其他客户端使用
            if(jedis!=null){ 
   
                jedis.close();
            }
        }

    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197805.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月27日 下午6:22
下一篇 2025年8月27日 下午7:01


相关推荐

  • Anaconda+PyCharm+VScode 简易教程

    Anaconda+PyCharm+VScode 简易教程在上一篇博客中说到 推荐使用 PyCharm 编写和调试 使用 VSCode 交互式开发 从目前的体验上 PyCharm 对于 tensorflow 内部变量的自动提示的辅助 给代码编辑带来了比较好的体验 而 VScode 在第三方库函数的编辑提示就差了很多 但是 在交互的体验上 VScode 更好 此外 就初学者而言 本人还推荐使用 jupyternoteb 会有不错的体验 jupyter

    2026年3月17日
    1
  • 单调队列问题「建议收藏」

    单调队列问题「建议收藏」SlidingWindow题目传送:POJ-2823-SlidingWindow闲来没事学学单调队列的写法,嗯,一个很奇怪的队列形式。。单调队列是指:队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只有队尾可以进行入队操作。因为这里是滑动窗口,每次移动需要进行更新,所以可以用单调队列来实现。本题用单调递增队列来求每一个区间的最小值,用单调递减队列来求每一个区间的最大值

    2022年6月25日
    32
  • sqlite数据库可视化工具—— DB.Browser安装说明

    sqlite数据库可视化工具—— DB.Browser安装说明下面这一步是让你选择是否安装快捷方式到桌面和开始菜单:选择安装的位置,可以默认,或者选择自己的目录:等待安装完成即可打开软件:…

    2025年10月10日
    4
  • 在线视频的5种下载办法

    在线视频的5种下载办法最简单的办法,就是利用各种网盘搜索,找到网盘的分享地址,转存到自己的网盘,然后下载。这样就避免了从在线视频网站直接下载,而且常常清晰度比较高。如果网盘找不到,第二种办法是利用一些在线视频的解析网站。

    2022年6月30日
    34
  • 数据结构项目——单向链表[通俗易懂]

    数据结构项目——单向链表[通俗易懂]使用单向链表(增加,删除,查询,修改)代码如下:#include “pch.h”#include<string>#include <iostream>using namespace std;struct LNode{ int data;// 数据域 LNode *next; // 指针域};//新建链表void NewList(LNode *…

    2022年8月18日
    7
  • Floyed算法[通俗易懂]

    Floyed算法[通俗易懂]这一讲简单介绍一下Floyed算法。话不多说,先放一道题帮助理解(其实是懒得描述具体应用场景)。FroggerFreddyFrogissittingonastoneinthemiddleofalake.SuddenlyhenoticesFionaFrogwhoissittingonanotherstone.Heplanstovisit

    2022年6月29日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号