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();
            }
        }

    }
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux下安装tomcat配置环境变量

    linux下安装tomcat配置环境变量linux下安装tomcat,一定记得配置环境变量,在tomcat的bin目录通过vi命令打开catalina.sh,在catalina.sh中加入如下配置:exportTOMCAT_HOME=/usr/local/apache-tomcat-9.0.0.M26exportCATALINA_HOME=/usr/local/apache-tomcat-9.0.0.M26exportJRE_HOME=/usr/lib/jvm/jdk1.8.0_131/jreexportJAVA_HOME=/u

  • 网络游戏开发基础篇

    本篇的内容,会介绍几个内容:单例,dll动态加载以及一些跨平台的处理。       1、单例:单例模式是一种使用广泛而又比较简单的设计模式,他的定义我就不多介绍了,大家上网一查就知道了,基本都能理解。在游戏开发中,会有很多单件,所以封装一个单例类供后面的开发使用。       本单例使用模板实现,代码如下:[cpp] viewplaincopyprint?//

  • python视频识别_视频人员行为识别(Action Recognition)

    python视频识别_视频人员行为识别(Action Recognition)一.提出背景目标:给定一段视频,通过分析,得到里面人员的动作行为。问题:可以定义为一个分类问题,通过对预定的样本进行分类训练,解决一个输入视频的多分类问题。这里提出的问题是简单的图片(视频)分类问题,该问题的前提条件是:场景目标为单人,并且占据图片比较大的比例,如下图所示:还有一类问题是基于行人检测,去估计行人的姿态和动作,暂时不在本篇讨论范围内。二.行为识别的发展和其他领域一样,我们还是先从…

  • UIScrollView 与 touchesBegan 冲突解决方法

    UIScrollView 与 touchesBegan 冲突解决方法UIScrollView与touchesBegan冲突解决方法

  • 《MySQL管理之道:性能调优、高可用与监控》china-pub首发!

    《MySQL管理之道:性能调优、高可用与监控》china-pub首发!

  • m-learning_数据库上云

    m-learning_数据库上云这是云从大佬在CVPR上的一篇paper。基本思想就是通过对globalfeature进行多粒度的切分,提取更局部的细节特征。当时在Market-1501,CUHK03,DukeMTMC-reID三个数据集刷新了SOTA纪录,其中最高在Market-1501上的首位命中率(Rank-1Accuracy)达到96.6%,让(ReID)在准确率上首次达到商用水平,很大程度上可以说是推动了整个rei…

发表回复

您的电子邮箱地址不会被公开。

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