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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于Spring 的IoC和AOP的面试题,快看看你都能答上来哪些

    关于Spring 的IoC和AOP的面试题,快看看你都能答上来哪些? 博客首页:派大星⛳️ 欢迎关注 ❤️ 点赞 ? 收藏 ✏️ 留言? 本文由派大星原创编撰? 系列专栏:《迎战面试》? 本系列分享自己准备面试的过程和一些经典的面试题目录? SpringIOC? IOC是什么?? Ioc容器的初始化过程?? 基于注解的容器初始化? 依赖注入的相关注解?? 如何通过注解.

    2022年6月29日
    20
  • [图文讲解]redis命令keys和scan的区别[通俗易懂]

    [图文讲解]redis命令keys和scan的区别

    2022年2月19日
    113
  • 吉利gkui19安装第三方软件_第三方app

    吉利gkui19安装第三方软件_第三方app任意安装你想要的APP????文中使用的方法为DNS劫持车机应用商店,需要你具备一定的操作能力,否则将无法达到最终目的。????阅读本文,视为你有一定电脑基础,请不要重复询问无关痛痒的问题(百度就是最好的老师)!支持车型:博瑞GE全系列,18款20款博越、星越全系列、缤越全系列、缤瑞全系列、嘉际全系列等车型文中使用的dns地址为:47.95.115.6????教程所需物料:根据教程来操作,只……

    2022年10月13日
    0
  • 向量的内积与夹角_两个向量的内积怎么算

    向量的内积与夹角_两个向量的内积怎么算最近在做文本聚类,用到了奇异值分解,可是我不明白原理,于是复习线性代数。遇到了向量内积和夹角的关系,不太明白。向量内积,也叫做向量的点积,是两个向量对应分量乘积之和。如果两个向量是垂直的,那么点积为0。如果点积为0,那么两个向量是垂直的。如果两个向量内积大于0,那么两个向量夹角小于90’,如果两个向量内积小于0,那么两个向量夹角大于90’。    $$x=

    2022年9月24日
    0
  • 多模态学习「建议收藏」

    多模态学习「建议收藏」作者:张致远#mermaid-svg-bqinfdlcry278edQ.label{font-family:’trebuchetms’,verdana,arial;font-family:var(–mermaid-font-family);fill:#333;color:#333}#mermaid-svg-bqinfdlcry278edQ.labeltext{fill:#333}#mermaid-svg-bqinfdlcry278edQ.noderect,#mermaid-svg-..

    2022年6月29日
    34
  • PyCharm使用教程 — 4、界面/菜单栏介绍

    PyCharm使用教程 — 4、界面/菜单栏介绍界面介绍从大的方向来看PyCharm分为菜单栏区域/项目结构区域/代码区域/运行信息区菜单栏提示:菜单栏快捷键为Alt+首字母,比如File的快捷键Alt+F,Edit的快捷键Alt+E1、File(文件)NewProject:创建新的项目New…:新建一些中间件配置,如MySQL、MongoDB、DDL等以及相关驱动NewScratchFile:划痕文档,也称为临时文件,可以创建各种类型的文件进行临时处理,在里面“打草稿”,

    2022年8月27日
    0

发表回复

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

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