redis-Jedis使用

  • 概念
  • 使用步骤
  • jedis操作各种redis的数据结构
    • 字符串数据类型:string
    • 哈希类型:hash
    • 列表类型:list
    • 集合类型:set
    • 有序集合类型:
  • redis连接池
    • 步骤
  • 连接池工具类
    • 配置文件

概念

一款java操作redis数据库工具

使用步骤

  1. 下载jedis的jar包
  2. 使用
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
// 如果 Redis 服务设置了密码,需要下面这行,没有就不需要
// jedis.auth("123456");
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());

jedis操作各种redis的数据结构

字符串数据类型:string

  1. 存储:set key value
  2. 获取:get key
  3. 删除:del key
//1.获取连接
Jedis jedis = new Jedis();//空参,默认是locahost;6379
//2.操作
//存储
jedis.set("username","zhangshan");
//获取
String username = jedis.get("username");
System.out.println(username);//setex()方法存储可以指定过期时间的key value值
jedis.setex("activecode",20,"hehe");//3.关闭连接
jedis.close();

哈希类型:hash

  1. 存储:hset key field value
  2. 获取:hset key field:获取指定的field对应的值;hgetall key:获取所有的键和值
  3. 删除:hdel key field
//1.获取连接
Jedis jedis = new Jedis();//空参,默认是locahost;6379
//2.操作
//存储
jedis.hset("user","name","lisi");
jedis.hset("user","age","23");
jedis.hset("user","gender","male");
//获取
String hget = jedis.hget("user", "name");
System.out.println(hget);//hgetAll()方法获取整个set数据
Map<String, String> user = jedis.hgetAll("user");Set<String> strings = user.keySet();for (String key :strings) {String s = user.get(key);System.out.println(s);
}//3.关闭连接
jedis.close();

列表类型:list

可以添加一个元素到列表的头部(左侧)或者尾部(右侧)

  1. 添加
  • lpush key value :将元素加到列表左边
  • rpush key value :将元素加到列表右边
  1. 查询
  • lrange key start end:范围获取
  1. 删除
    lpop key:删除列表最左边的元素并返回
    rpop key:删除列表最右边的元素并返回
//1.获取连接
Jedis jedis = new Jedis();//空参,默认是locahost;6379
//2.操作
//存储
jedis.lpush("mylist","a","b","c");
jedis.rpush("mylist","a","b","c");
//获取
List<String> mylist = jedis.lrange("mylist", 0, 1);
System.out.println(mylist);//list弹出
String mylist1 = jedis.lpop("mylist");
System.out.println(mylist1);String mylist2 = jedis.rpop("mylist");
System.out.println(mylist2);//3.关闭连接
jedis.close();

集合类型:set

不允许重复元素

  1. 存储:sadd key value
  2. 获取:smembers key:获取set集合的所有元素
  3. 删除:srem key value:删除集合中的某个元素
//1.获取连接
Jedis jedis = new Jedis();//空参,默认是locahost;6379
//2.操作
//存储
jedis.sadd("myset","java","php","c++");//获取
Set<String> myset = jedis.smembers("myset");
System.out.println(myset);//3.关闭连接
jedis.close();

有序集合类型:

不允许重复元素,且元素有序

  1. 存储:zadd key score value:
  2. 获取:zrange key start end:
  3. 删除:zrem key value
//1.获取连接
Jedis jedis = new Jedis();//空参,默认是locahost;6379
//2.操作
//存储
jedis.zadd("mysortedset",3,"亚瑟");
jedis.zadd("mysortedset",30,"后裔");
jedis.zadd("mysortedset",25,"孙悟空");//获取
List<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
System.out.println(mysortedset);//3.关闭连接
jedis.close();

redis连接池

步骤

  1. 创建JedisPool连接池对象
  2. 调用getResource()方法获取Jedis连接
//0.配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(50);
jedisPoolConfig.setMaxIdle(10);//1.创建连接池对象
JedisPool jedisPool = new JedisPool(jedisPoolConfig,"localhost",6379);
//2.获取连接
Jedis jedis = jedisPool.getResource();
//存储
jedis.zadd("mysortedset",3,"亚瑟");
jedis.zadd("mysortedset",30,"后裔");
jedis.zadd("mysortedset",25,"孙悟空");//获取
List<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
System.out.println(mysortedset);//3.关闭连接
jedis.close();

连接池工具类

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;/*** JedisPool工具类* 加载配置文件,配置连接池参数* 提供获取连接的方法*/
public class JedisPoolUtils {private static JedisPool jedisPool;static {//        读取配置文件InputStream resourceAsStream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
//        创建properties对象Properties properties = new Properties();
//        关联对象try {properties.load(resourceAsStream);} catch (IOException e) {e.printStackTrace();}
//        获取数据,设置到jedisPoolConfig中JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle")));
//        初始化JedisPooljedisPool = new JedisPool(jedisPoolConfig,properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));}/*** 获取连接方法* */public static Jedis getJedis(){return jedisPool.getResource();}
}

配置文件

host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10

redis-Jedis使用相关推荐

  1. Redis实战之征服 Redis + Jedis + Spring (三)

    一开始以为Spring下操作哈希表,列表,真就是那么土.恍惚间发现"stringRedisTemplate.opsForList()"的强大,抓紧时间恶补下. 通过spring-d ...

  2. 使用Servlet 3.0,Redis / Jedis和CDI的简单CRUD –第1部分

    在这篇文章中,我们将构建一个简单的用户界面. 数据将存储在Redis中. 为了与Redis交互,我们将使用Jedis库. CDI用于Depedency Injection,而Servlet 3.0用于 ...

  3. 使用Servlet 3.0,Redis / Jedis和CDI的简单CRUD –第2部分

    在本文中,我们将重点介绍CDI和Servlet 3.0. 您可以在此处看到第1部分. 让我们从CDI开始. 当我开始撰写源自该系列的文章时,我并没有考虑撰写CDI. 真诚地说,我以前从未使用过. 这篇 ...

  4. Redis Jedis

    相信大家有着同样的问题,Jedis是什么呢?下面为你详细解答关于Redis Jedis的内容. Jedis到底是什么? 在常见命令中,使用各种Redis自带客户端的命令行方式访问Redis服务. 而在 ...

  5. 征服 Redis + Jedis + Spring (一)—— 配置常规操作(GET SET DEL)

    有日子没写博客了,真的是忙得要疯掉. 完成项目基础架构搭建工作,解决了核心技术问题,接着需要快速的调研下基于Spring框架下的Redis操作. 相关链接: 征服 Redis 征服 Redis + J ...

  6. Springboot整合redis+jedis

    Spring Boot整合Redis+Jedis 1)在pom.xml添加Redis依赖Jedis依赖和,示例代码如下 <!-- <version>2.1.5.RELEASE< ...

  7. Redis实战之Redis + Jedis

    用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis! 相关链接: Redis实战 Redis实战之Redi ...

  8. SpringBoot2.1.9 多Redis Jedis配置

    一.配置文件 pom.xml <dependency><groupId>org.springframework.boot</groupId><artifact ...

  9. [redis] Jedis 与 ShardedJedis 设计

    Jedis设计 Jedis作为推荐的java语言redis客户端,其抽象封装为三部分: 对象池设计:Pool,JedisPool,GenericObjectPool,BasePoolableObjec ...

  10. java Redis Jedis存储Java对象 - (Java序列化为byte数组方式)

    2019独角兽企业重金招聘Python工程师标准>>> Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) Redis入门 – Jedis存储J ...

最新文章

  1. 最小生成树(kruskal、prim、最小生成森林问题、严格次小生成树)
  2. Linux命令之du
  3. matlab同窗口显示图片,[求助]关于GUI的问题,如何在同一窗口里显示四副图片...........
  4. Python中调用Linux命令并获取返回值
  5. WEB环境下打印报表的CRYSTAL的解决方案
  6. 作为一个程序员,数学对你到底有多重要
  7. 解决Android Studio连接不到ios模拟器问题
  8. 服务器虚拟化分步实施,服务器虚拟化解决实施方案.doc
  9. 基于STM32设计的车库监控报警系统
  10. 人脸识别面试常见题目总结
  11. 云流化/云渲染技术一种比像素流功能更完善的解决方案
  12. 彩虹云仿小柯秒赞主题模板
  13. 【网上教学】实现线上签到和收批作业的方法
  14. SCSI子系统基础学习笔记 (之UFS子系统) - 1.2 概述(软件部分)
  15. 苹果笔记本,电源指示灯一直为橙色的解决办法
  16. 从相机相册获取图片裁剪后用于评论晒图或更换背景图
  17. JavaScript的事件系列二keydown,keypress,获取键码------JavaScript学习之路4
  18. 想装吗?看看装B大全
  19. 计算机不能上网 故障分析,电脑不能上网故障排查方法教程
  20. 站点部署 廖雪峰的官方网站

热门文章

  1. 详细介绍Audition输出一个周期2khz的正弦波(循环)。将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。
  2. RTL8188EUS WIFI驱动编译与使用说明书
  3. 关于IEEE 754双精度浮点数(double)
  4. 珍爱网产品经理:为年轻人创造私密、高效的社交空间
  5. 什么是元编程(meta-promgramming)?
  6. Android Studio:单选按钮和复选框
  7. 拙作《互联网时代的软件革命--SaaS架构设计》上市了
  8. Windows11 win11提示这台电脑不符合安装此版本的Windows所需的最低系统要求怎么解决?
  9. MATLAB语言实现模拟退火算法求解n维变量的最小值问题
  10. ⅠB2期和ⅡA2期子宫颈腺癌及腺鳞癌新辅助化疗后手术治疗疗效观察