本文共 4658 字,大约阅读时间需要 15 分钟。
jedis是redis的java版本的客户端实现。也可以说是redis数据库的工具。
第一步:我使用的IDE是idea,所以呢大家先在自己的IDE中创建一个web项目啦,其它的IDE我没有试过,所以呢这里我就记录我自己的操作过程,然后呢需要导入两个jar包,这个大家可以自己去下载,版本没必要跟我的一样,匹配就行。
1.commons-pool2-2.3.jar 2.jedis-2.7.0.jar 添加完jar包之后呢,不要忘了将lib添加到当前模块哦, 鼠标放到lib上右键——Add as Library,注意红色箭头那里的选项哦。 第二步:下面就来简单测试一下吧,在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的一个快速入门的使用就演示完毕啦。之前呢简单介绍过redis的五种数据类型,那在java中如何通过jedis来操作这5中数据类型呢?下面就简单的逐个演示一下吧!
我还是在上面的那个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数据库:
@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的数据 Mapuser = jedis.hgetAll("user"); //keyset Set keyset = user.keySet(); for (String key:keyset){ String value = user.get(key); System.out.println(key+":"+value); } //关闭连接 jedis.close(); }
同样的在,我们运行单元测试后在数据库中查询一下吧,查询的命令我就不赘述的,前面的博文里有:
@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范围获取 Listmylist = 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:
@Test public void test5(){ //1.获取连接 Jedis jedis = new Jedis("localhost",6379); //2.操作,set存储,myset是key,可以存多个值 jedis.sadd("myset","java","php","c++"); //set获取 Setmyset = jedis.smembers("myset"); System.out.println(myset); //关闭连接 jedis.close(); }
操作跟上面的一样,废话不多说,直接上截图:
@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 获取 Setmysortedset = 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数据库的五种数据类型就介绍完毕啦,希望能对大家有一些帮助。这个就简单赋个代码吧,后面还可以用工具类操作的,这里就简单介绍下:
@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/