博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis数据库四:jedis
阅读量:3978 次
发布时间:2019-05-24

本文共 4658 字,大约阅读时间需要 15 分钟。

redis数据库四:jedis


文章目录


前言

jedis是redis的java版本的客户端实现。也可以说是redis数据库的工具。


一、jedis的简单使用

第一步:我使用的IDE是idea,所以呢大家先在自己的IDE中创建一个web项目啦,其它的IDE我没有试过,所以呢这里我就记录我自己的操作过程,然后呢需要导入两个jar包,这个大家可以自己去下载,版本没必要跟我的一样,匹配就行。

  1.commons-pool2-2.3.jar
  2.jedis-2.7.0.jar
在这里插入图片描述
添加完jar包之后呢,不要忘了将lib添加到当前模块哦,
鼠标放到lib上右键——Add as Library,注意红色箭头那里的选项哦。
!](https://img-blog.csdnimg.cn/20210602092943247.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1F1aWV0X2hhbg==,size_16,color_FFFFFF,t_70)
第二步:下面就来简单测试一下吧,在src里面创建哦,写一个这样的单元测试:

public class JedisTest {
@Test public void test1(){
//1.获取连接,设置主机ip:localhost或者127.0.0.1,还有端口6379 Jedis jedis = new Jedis("localhost",6379); //操作,这里存储键-值 jedis.set("username","zhangsan"); //关闭连接 jedis.close(); }

我们在单元测试之前先来在redis客户端里面查看数据库有数据没,结果显示是没有的:

在这里插入图片描述
然后我们运行单元测试的代码,运行完之后,再来查数据,查询到的数据就是上面java通过jedis存储到redis数据库的数据:
在这里插入图片描述
至此,jedis的一个快速入门的使用就演示完毕啦。

二、jedis操作各种redis数据结构

之前呢简单介绍过redis的五种数据类型,那在java中如何通过jedis来操作这5中数据类型呢?下面就简单的逐个演示一下吧!

1. String数据结构操作

我还是在上面的那个java文件中用单元测试的方式写下面的代码,

@Test   public void test2(){
//1.获取连接,可以不设置参数,默认就是localhost和6379 Jedis jedis = new Jedis("localhost",6379); //2.操作,存储数据 jedis.set("username","zhangsan"); //获取 String username = jedis.get("username"); System.out.println(username); /*可以使用setex()方法存储可以指定过期时间的key value 将hello:world键值对存入redis,并且自动20秒后自动删除它 */ jedis.setex("hello",20,"world"); //3.关闭连接 jedis.close(); }

运行单元测试,然后查询redis数据库:

在这里插入图片描述

2. hash数据结构操作

@Test   public void test3(){
//1.获取连接,设置主机ip:localhost或者127.0.0.1,还有端口6379 Jedis jedis = new Jedis("localhost",6379); //2.操作 //存储hash jedis.hset("user","name","lisi"); jedis.hset("user","age","23"); jedis.hset("user","gender","male"); //获取hash String name = jedis.hget("user","name"); System.out.println(name); //获取hash的所有map的数据 Map
user = jedis.hgetAll("user"); //keyset Set
keyset = user.keySet(); for (String key:keyset){
String value = user.get(key); System.out.println(key+":"+value); } //关闭连接 jedis.close(); }

同样的在,我们运行单元测试后在数据库中查询一下吧,查询的命令我就不赘述的,前面的博文里有:

在这里插入图片描述

3. list数据结构操作

@Test   public void test4(){
//1.获取连接,设置主机ip:localhost或者127.0.0.1,还有端口6379 Jedis jedis = new Jedis("localhost",6379); //2.操作 //存储list jedis.lpush("mylist","a","b","c"); //从左边存 jedis.rpush("mylist","a","b","c"); //从右边存 //list范围获取 List
mylist = jedis.lrange("mylist",0,-1); System.out.println(mylist); //list弹出,从左边弹出第一个元素 String element1 = jedis.lpop("mylist"); System.out.println(element1); //从右边弹出第一个元素 String element2 = jedis.rpop("mylist"); System.out.println(element2); //list范围获取 List
mylist2 = jedis.lrange("mylist",0,-1); System.out.println(mylist2); //关闭连接 jedis.close(); }

这里展示一下控制台的输出,方便理解lpop和rpop:

在这里插入图片描述

4. set 数据结构操作

@Test   public void test5(){
//1.获取连接 Jedis jedis = new Jedis("localhost",6379); //2.操作,set存储,myset是key,可以存多个值 jedis.sadd("myset","java","php","c++"); //set获取 Set
myset = jedis.smembers("myset"); System.out.println(myset); //关闭连接 jedis.close(); }

操作跟上面的一样,废话不多说,直接上截图:

在这里插入图片描述

5. sortedset数据结构的操作

@Test   public void test6(){
//1. 获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口 //2. 操作 // sortedset 存储 jedis.zadd("mysortedset",3,"亚瑟"); jedis.zadd("mysortedset",30,"后裔"); jedis.zadd("mysortedset",55,"孙悟空"); // sortedset 获取 Set
mysortedset = jedis.zrange("mysortedset", 0, -1); System.out.println(mysortedset); //3. 关闭连接 jedis.close(); }

客户端查询一下吧,这里呢我顺便记录一下我查询时遇到的小错误以及解决办法:

控制台输出:
在这里插入图片描述
redis客户端输出:出现中文乱码问题:在这里插入图片描述
然后我在上查询了一下,有说改默认字体为Lucida Console的,也有说在命令行使用redis-cli.exe --raw这个命令来启动客户端的,但是我都亲身试了一下,的确是不乱码,但是却又是这样的:
在这里插入图片描述
问题原因:因为字符编码的原因,带大家看一下,在dos窗口边缘处(下图)单击右键——属性——选项
在这里插入图片描述
在这里插入图片描述
好啦,现在开始解决上面的问题:
第一步:在redis安装文件目录下打开dos:
在这里插入图片描述
第二步:输入指令:chcp 65001将GBK编码转到UTF8,当然还要改默认字体为Lucida Console哦(边缘部分右键——默认值——字体——Lucida Console)
在这里插入图片描述
第三步:再来查询一下试试:
在这里插入图片描述
好啦,在java中通过jedis简单的操作redis数据库的五种数据类型就介绍完毕啦,希望能对大家有一些帮助。

三、jedis连接池:jedisPool

这个就简单赋个代码吧,后面还可以用工具类操作的,这里就简单介绍下:

@Test   public void test7(){
//0.创建一个配置对象 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(50); //设置最大的连接数 config.setMaxIdle(10); //最大空闲时间 //1.创建jedisPool连接池对象 JedisPool jedisPool = new JedisPool(config,"localhost",6379); //2.调用方法getResource获取jedis连接 Jedis jedis = jedisPool.getResource(); //3.使用 jedis.set("hehe","heihei"); //4.关闭,归还到连接池中 jedis.close(); }

来获取一下吧:

在这里插入图片描述

总结

到这里在java中通过jedis简单的操作redis数据库就简单介绍完啦,因为使用的IDE可能各不相同,也会有一些差异,自己也是新手小白,就记录一下自己所学的,希望可以帮助到大家(喜欢可以点个赞,哈哈),如有不足之处欢迎留言指正,虚心求教。

转载地址:http://zogki.baihongyu.com/

你可能感兴趣的文章
DB2 物化查询表
查看>>
IF 语句
查看>>
循环语句
查看>>
DB2 临时表
查看>>
ITERATE、LEAVE、GOTO和RETURN
查看>>
异常处理
查看>>
存储过程
查看>>
动态SQL(Dynamic SQL)
查看>>
在存储过程之间传递数据
查看>>
迁移存储过程
查看>>
GET DIAGNOSTIC 语句
查看>>
Python 简介
查看>>
Python 注释
查看>>
Python 变量
查看>>
Python 数据类型 -- 数字
查看>>
Spring 管理对象
查看>>
Spring 自定义对象初始化及销毁
查看>>
Spring Batch 环境设置
查看>>
字符组转译序列
查看>>
字符转译序列
查看>>