package cn.hope.jedis.utils;

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

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
* @author newcityman
* @date 2019/9/20 - 0:33
* JedisPool工具类
* 加载配置文件,配置连接池的连接池
* 提供获取连接的方法
*/
public class JedisPoolUtils {
private static JedisPool jedisPool;
static {
//读取配置文件
InputStream is = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
//创建Properties对象
Properties prop = new Properties();
try {
prop.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//获取数据,设置到JedisPoolConfig()中
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(Integer.parseInt( prop.getProperty("maxTotal")));
config.setMaxTotal(Integer.parseInt(prop.getProperty("maxIdle")));
jedisPool=new JedisPool(config,prop.getProperty("host"),Integer.parseInt(prop.getProperty("port")));
}

/**
* 获取连接方法
* @return
*/
public static Jedis getJedis(){
return jedisPool.getResource();
}
}

package cn.hope.jedis.test;

import cn.hope.jedis.utils.JedisPoolUtils;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* Jedis测试类
* @author newcityman
* @date 2019/9/19 - 22:36
*/
public class JedisTest {
@Test
public void test1(){
//1、创建连接
Jedis jedis = new Jedis("localhost", 6379);
//2、操作
jedis.set("city","nanjing");
//3、关闭连接
jedis.close();
}

/**
* String数据结构操作
*/
@Test
public void test2(){
//1、创建连接
Jedis jedis = new Jedis();//不写参数时,默认是主机是localhost,端口是6379
//2、操作
jedis.set("city","nanjing");
String city = jedis.get("city");
System.out.println(city);
jedis.setex("activecode",20,"159637");
String activecode = jedis.get("activecode");
System.out.println(activecode);
//3、关闭连接
jedis.close();
}

/**
* Hset数据结构操作
*/
@Test
public void test3(){
//1、创建连接
Jedis jedis = new Jedis();
//2、操作
//存储hash
jedis.hset("myhash","hashid","123");
jedis.hset("myhash","hashname","pickpag");
jedis.hset("myhash","hashage","12");
//获取hash
String hget = jedis.hget("myhash", "hashname");
System.out.println(hget);
//获取hash中说有map值
Map<String, String> map = jedis.hgetAll("myhash");

Set<String> strings = map.keySet();
for (String string : strings) {
System.out.println(string+":"+map.get(string));
}
//3、关闭连接
jedis.close();
}

/**
* list数据结构操作
*/
@Test
public void test4(){
//1、创建连接
Jedis jedis = new Jedis();
//2、操作
//存储list
jedis.lpush("mylist","a" ,"b","c");
jedis.rpush("mylist","a" ,"b","c");

//获取list 范围获取
List<String> mylist = jedis.lrange("mylist", 0, -1);
System.out.println(mylist);

//list 弹出
String lpop = jedis.lpop("mylist");
String rpop = jedis.rpop("mylist");
System.out.println(lpop);
System.out.println(rpop);
//获取list 范围获取
List<String> mylist2 = jedis.lrange("mylist", 0, -1);
System.out.println(mylist2);

//3、关闭连接
jedis.close();
}

/**
* set数据结构操作
*/
@Test
public void test5(){
//1、创建连接
Jedis jedis = new Jedis();
//2、操作
//存储set
jedis.sadd("myset","java","c++","delphi");

//获取
Set<String> myset = jedis.smembers("myset");
System.out.println(myset);

//3、关闭连接
jedis.close();
}

/**
* sortedSet数据结构操作
*/
@Test
public void test6(){
//1、创建连接
Jedis jedis = new Jedis();
//2、操作
//存储sortedSet
jedis.zadd("mysortedSet",50,"哪吒");
jedis.zadd("mysortedSet",70,"西游记");
jedis.zadd("mysortedSet",40,"红楼梦");

//获取
Set<String> mysortedSet = jedis.zrange("mysortedSet", 0, -1);
System.out.println(mysortedSet);

//3、关闭连接
jedis.close();
}

/**
* Jedis连接池使用
*/
@Test
public void test7(){
//1、创建连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50);
config.setMaxIdle(10);

//2、创建连接池
JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
//3.通过连接池获取连接
Jedis jedis = jedisPool.getResource();
//4、使用
jedis.set("hhhhh","wwwww");
//5、关闭,归还到连接池中
jedis.close();
}

/**
* 通过连接池工具类连接
*/
@Test
public void test8(){
//1、获得连接
Jedis jedis = JedisPoolUtils.getJedis();
//2、操作
jedis.set("jedispoolutils","jedispoolutils");
String jedispoolutils = jedis.get("jedispoolutils");
System.out.println(jedispoolutils);
//3、关闭
jedis.close();
}

}
 

Jedis操作五种不同的类型的数据的更多相关文章

  1. Java并发:五种线程安全类型、线程安全的实现、枚举类型

    1. Java中的线程安全 Java线程安全:狭义地认为是多线程之间共享数据的访问. Java语言中各种操作共享的数据有5种类型:不可变.绝对线程安全.相对线程安全.线程兼容.线程独立 ① 不可变 不 ...

  2. 转:Windows Socket五种I/O模型

    原文转自:  Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...

  3. Windows Socket五种I/O模型——代码全攻略(转)

    Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操 ...

  4. Jedis操作笔记 redis的五种存储类型

    常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个val ...

  5. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

  6. c# 操作Redis的五种基本类型总结

    在我们的项目中,通常会把数据存储到关系型数据库中,比如Oracle,SQL Server,Mysql等,但是关系型数据库对于并发的支持并不是很强大,这样就会造成系统的性能不佳,而且存储的数据多为结构化 ...

  7. Redis学习笔记(3)—— 五种数据类型&keys的通用操作

    一.Redis数据结构介绍 redis是一种高级的key-value的存储系统,其中的key是字符串类型,尽可能满足如下几点: 1)key不要太长,最好不要操作1024个字节,这不仅会消耗内存还会降低 ...

  8. spring aop 的五种通知类型

    本文转自:http://blog.csdn.net/cqabl/article/details/46965197 spring aop通知(advice)分成五类: 前置通知[Before advic ...

  9. 动态分配的顺序线性表的十五种操作—C语言实现

    线性表 定义:是最常用的,也是最简单的数据结构,是长度为n个数据元素的有序的序列. 含有大量记录的线性表叫文件 记录:稍微复杂的线性表里,数据元素为若干个数据项组成,这时把一个数据元素叫记录 结构特点 ...

随机推荐

  1. 南大《软件分析》课程笔记——Data Flow Analysis

    南大<软件分析>--Data Flow Analysis @(静态分析) 目录 数据流分析概述 数据流分析应用 Reaching Definitions Analysis(may anal ...

  2. [JavaScript] 实现简单的表单数据校验功能

    实现表单数据校验功能 因为项目用的UI库功能太少,表单不具备校验功能,所以自己写了一个,只有一个文件. 使用 import { required, email, useValidate } from ...

  3. COS 音视频实践 | 多种姿势让你的视频“跑”起来

    导语 随着4G/5G时代的到来,短视频/直播行业开始流行,音视频逐渐成为信息传播中流量占比最大的部分.腾讯云对象存储(COS)作为可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务, ...

  4. CF713C Sonya and Problem Wihtout a Legend

    考虑我们直接选择一个暴力\(dp\). \(f_{i,j} = min_{k<=j}\ (f_{i - 1,k}) + |a_i - j|\) 我们考虑到我们直接维护在整个数域上\(min(f_ ...

  5. ARC 119 补题记录

    这把感觉质量很高. \(E\) \(E\)比较简单所以先写个\(E\),考虑就一个置换操作来说改变的只有两端的值. 考虑\(|a_i - a_{i - 1}|\)变成区间,则我们考虑分类讨论,发现只有 ...

  6. 蓝绿部署、滚动部署、金丝雀(Canary)发布、灰度发布、A/B测试

    最近看到Canary发布,一时没有反应过来是什么,一查才发现就是鼎鼎有名的金丝雀发布,发现经常一起出现的还有灰度发布.蓝绿部署.滚动部署.A/B测试,故一起学习一下这几个概念. 1. 蓝绿部署 目的: ...

  7. 【GS应用】基因组选择在杂交玉米上的应用示例

    目录 GS两步走 示例 缩短周期和成本 分类 杂交类型 试验研究 选择响应 选择的强度 选择的周期 预测能力 数据分析的注意事项 GS实施 优缺点 GS的成功 展望 GS两步走 示例 缩短周期和成本 ...

  8. Hive-删除表(drop、truncate的区别)

    Hive删除操作主要分为几大类:删除数据(保留表).删除库表.删除分区.我将以下图为例清空iot_devicelocation中的数据,之后再删除表.库等. 解释: use xpu123;   #使用 ...

  9. Oracle-trunc函数、round 函数、ceil函数和floor函数---处理数字函数使用

    0.round函数 按照指定小数位数进行四舍五入运算. SELECT ROUND( number, [ decimal_places ] ) FROM DUAL #number : 待处理数值  de ...

  10. Linux-设置终端界面的字体颜色和自定义常用快捷功能

    .bashrc是一个隐藏的文件,要打开并修改该文件需要: (0)命令:cd ~ (1)命令:ls -a 找到文件 .bashrc: (2) 命令 vim ~/.bashrc 进入到文件: (3) 直接 ...