下一篇博文: Jedis 连接池
要使用 java 操作 redis,需要保证服务端已经安装了 redis 服务,并且本地项目已经有 java redis 驱动(jedis)
Maven 引入 Jedis 依赖
这个需要在中央仓库中自己去 copy
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
Jedis 连接以及数据存取
public class JedisExercise {
public static void main(String[] args){
/*=========== 连接 redis 服务 ===========*/
//ip 以及 port
Jedis jedis = new Jedis("127.0.0.1", 6379);
//验证密码 "password"
jedis.auth("password");
System.out.println("成功登入 Redis 数据库");
/*=========== redis String 操作 ===========*/
//添加和读取数据,若存在则覆盖
jedis.set("string", "字符串");
System.out.println("新增 String 类型数据:" + jedis.get("string"));
//拼接数据
jedis.append("string", "进行 redis 存储");
System.out.println("拼接 String 类型数据后:" + jedis.get("string"));
//删除数据
jedis.del("string");
System.out.println("删除 String 类型数据后:" + jedis.get("string"));
//批量新增数据
jedis.mset("string1", "字符串1", "string2", "字符串2", "string3", "字符串3");
System.out.println("批量新增 String 类型数据" + jedis.get("string1") + jedis.get("string2") + jedis.get("string3"));
/*=========== redis Hash 操作 ===========*/
//添加数据
Map<String, String> map = new Map<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
jedis.hmset("hash", map);
List<String> list = jedis.hmget("hash", "key1", "key2", "key3");
System.out.println("新增进 Hash 数据类型中的数据:" + list);
//迭代器读取数据
Iterator<String> it = jedis.hkeys("hash").iterator();
while(it.hasNext()){
String key = it.next();
System.out.println(key + ":" + jedis.hget("hash", key));
}
//拼接数据
jedis.hset("hash", "key4", "value4");
System.out.println("拼接进 Hash 类型数据后:" + jedis.hmget("hash", "key1", "key2", "key3", "key4"));
//返回 Hash 存储相关的数据值
System.out.println("该 Hash 存储存放值个数:" + jedis.hlen("hash"));
System.out.println("是否存在 key 为 user 的记录:" + jedis.exists("hash"));
System.out.println("该 Hash 存储中所有 key" + jedis.hkeys("hash"));
System.out.println("该 Hash 存储中所有 value" + jedis.hvals("hash"));
//删除数据
jedis.hdel("hash", "key1");
System.out.println("删除 Hash 数据类型中的数据:" + jedis.hmget("hash", "key1"));
jedis.del("hash");
System.out.println("删除整个 Hash 存储");
/*=========== redis List 操作 ===========*/
//添加和读取数据
jedis.lpush("list", "表数据");
jedis.lpush("list", "表数据");
jedis.lpush("list", "表数据3");
jedis.lpush("list", "表数据4");
List<String> list = jedis.lrange("list", 0, 3);
System.out.prinln("新增进 List 类型数据中的数据:" + list);
//删除数据
String popStr = jedis.lpop("list");
System.out.prinln("移除的最左边数据为:" + popStr);
List<String> strAfterPop = jedis.lrange("list", 0, -1);
System.out.println("移除后的数据为:" + strAfterPop);
/*=========== redis Set 操作 ===========*/
//添加和读取数据
jedis.sadd("set", "集合数据");
jedis.sadd("set", "集合数据2");
jedis.sadd("set", "集合数据3");
jedis.sadd("set", "集合数据");
Set<String> set = jedis.smembers("set");
System.out.println("新增 Set 类型数据:" + set);
//返回 Set 存储相关的数据值
System.out.prinltn("判断某一元素是否是 Set 中的元素:" + jedis.sismember("set", "集合元素1"));
System.out.println("返回集合中一随机元素:" + jedis.srandmember("set"));
System.out.println("Set 中元素个数:" + jedis.scard("set"));
jedis.sadd("set2", "集合数据");
jedis.sadd("set2", "集合数据4");
System.out.println("获取两个数据库的交集:" + jedis.sinter("set", "set2"));
System.out.println("获取两个数据库的并集:" + jedis.sunion("set", "set2"));
//删除数据
jedis.srem("set", "集合数据2");
/*=========== redis ZSet 操作 ===========*/
//添加和读取数据
jedis.zadd("zset", 1, "Z集数据1");
jedis.zadd("zset", 5, "Z集数据2");
jedis.zadd("zset", 22, "Z集数据3");
jedis.zadd("zset", 22, "Z集数据4");
Set<String> zset = jedis.zrange("zset", 0, -1);
System.out.println("ZSet 中所有数据:" + zset);
//删除数据
jedis.zremrangeByScore("zset", 1, 5);
System.out.println("通过 score 移除 1-5 的数据后:", zset);
}
}
下一篇博文:Jedis 连接池