Jedis与Redis
Posted MoYu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jedis与Redis相关的知识,希望对你有一定的参考价值。
Jedis与Redis
通过Jedis操作Redis
Jedis
是Redis官方推荐的java连接开发工具
, 使用ava操作Redis中间件
创建项目
首先创建一个空项目:
创建一个Maven的Module项目:
一路next
即可。
因为该项目的最先创建的是空项目,所以需要手动调节部分配置:
以下修改的都是JDK配置,按照自己电脑为准
- File----Project Structure---project
- File----Project Structure---modules
- File---Settings ,搜索
Java Compiler
导入依赖
<!--导入jedis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
Redis-Dome编写
1.连接Redis
先打开你电脑上的
redis-server
public class TestPing {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());
}
}
2.常用API
所有的命令,就和在
Linux
中使用Redis 没有区别,以下对String
、List
进行举例:
String 命令
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println("String存入数据:"+jedis.set("k", "v"));
System.out.println("String获取数据:"+jedis.get("k"));
System.out.println("String查看该元素是否存在"+jedis.exists("k"));
System.out.println("String追加字符串:"+jedis.append("k","、hello"));
System.out.println("String获取字符串长度:"+jedis.strlen("k"));
System.out.println("String设置过期时间:"+jedis.setex("k1",3,"test"));
// 睡眠3s,验证k1是否过期
Thread.sleep(3000);
System.out.println("String查看是否过期:"+jedis.ttl("k1"));
System.out.println("String不存在再设置:"+jedis.setnx("k2","v2"));
System.out.println("String同时设置多个值:"+jedis.mset("k3","v3","k4","v4"));
System.out.println("String同时获取多个值:"+jedis.mget("k3","k4"));
List 命令
System.out.println("清除数据:"+jedis.flushDB());
System.out.println("List存入数据(头插):"+jedis.lpush("list","one","two","three"));
System.out.println("List存入数据(尾插):"+jedis.rpush("list","right"));
System.out.println("List获取范围内的数据:"+jedis.lrange("list",1,2));
System.out.println("List通过下标获得值:"+jedis.lindex("list",1));
System.out.println("List获取列表长度:"+jedis.llen("list"));
System.out.println("List移除指定数据:"+jedis.lrem("list",1,"one"));
System.out.println("List替换指定位置的值:"+jedis.lset("list",0,"test"));
System.out.println("List插入具体值:"+jedis.linsert("list", ListPosition.BEFORE,"two","111111"));
System.out.println("List查看全部的元素:"+jedis.lrange("list",0,-1));
System.out.println("List取出数据(从头部):"+jedis.lpop("list"));
System.out.println("List取出数据(从尾部):"+jedis.rpop("list"));
3.Jedis理解事务
- 连接Redis
- 开启事务
- 存入数据
- 运行
- 若正常,直接执行事务
- 若出异常,事务直接结束
- 最后关闭连接
public class AffairsTesi {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
JSONObject jsonObject = new JSONObject();
jsonObject.put("k", "v");
jsonObject.put("name", "zc");
//开启事务
Transaction multi = jedis.multi();
String s = jsonObject.toJSONString();
try {
multi.set("user1", s);
multi.set("user2", s);
// int i = 1/0 ; // 加入该句,可以使之产生异常,自行测试
multi.exec(); // 没出问题 ,执行事务
} catch (Exception e) {
multi.discard(); // 出异常,结束事务
e.printStackTrace();
} finally {
System.out.println(jedis.get("user1"));
System.out.println(jedis.get("user2"));
jedis.close(); // 最终关闭连接
}
}
}
正常结束
异常结束
个人博客为:
MoYu\'s HomePage
以上是关于Jedis与Redis的主要内容,如果未能解决你的问题,请参考以下文章
Redis主从与哨兵架构详解 Redis主从架构 如何在同一台机器搭建主从架构 Redis主从工作原理 数据部分复制 Jedis使用 Redis的管道(Pipeline) Redis Lua脚本(代码