前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jedis与redistemplate_第六十二卦详解

jedis与redistemplate_第六十二卦详解

作者头像
全栈程序员站长
发布2022-10-02 17:41:07
1830
发布2022-10-02 17:41:07
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

文章目录

Redis详解(六)Jedis操作Redis

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

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

1.下载jedis和commons-pool

代码语言:javascript
复制
<!-- 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。

代码语言:javascript
复制
<!-- 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

代码语言:javascript
复制
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准备

创建一个工具类

代码语言:javascript
复制
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();
}
}
}

使用线程池

代码语言:javascript
复制
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.cn/197805.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月3日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • Redis详解(六)Jedis操作Redis
    • 1.下载jedis和commons-pool
      • 单独使用jedis
    • 2.Java应用使用Jedis准备
    相关产品与服务
    云数据库 Redis
    腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档