java redis常见操作

本文介绍java操作Redis的常见方法

采用Jedis方法操作,需要引入jedis jar包,本例子引用的是:jedis-5.2.0-beta4.jar

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import redis.clients.jedis.Jedis;

public class RedisTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

	/*
	 * java redis读写操作 实现数据读写操作
	 */
	public static void redisTest() {
		// 连接本地的 Redis 服务
		Jedis jedis = new Jedis("localhost", 6379);
		// 如果 Redis 服务设置了密码,需要下面这行,没有就不需要
		// jedis.auth("123456");
		System.out.println("连接成功");
		// 查看服务是否运行
		System.out.println("服务正在运行: " + jedis.ping());

		// 清除 redis 所有数据库中的所有数据
		// jedis.flushAll();

		// Redis Java String(字符串) 实例
		// 设置 redis 字符串数据
		jedis.set("runoobkey", "www.runoob.com");
		// 获取存储的数据并输出
		System.out.println("redis 存储的字符串为: " + jedis.get("runoobkey"));

		// Redis Java List(列表) 实例
		// 存储数据到列表中,在列表头部插入元素
		jedis.lpush("site-list", "Runoob");
		jedis.lpush("site-list", "Google");
		jedis.lpush("site-list", "Taobao");

		// 在列表尾部插入元素
		jedis.rpush("site-list", "baidu");
		jedis.rpush("site-list", "qq");

		// 获取存储的数据并输出
		// Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。
		// 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2
		// 表示列表的倒数第二个元素,以此类推。
		List list = jedis.lrange("site-list", 0, -1);
		for (int i = 0; i < list.size(); i++) {
			System.out.println("列表项为: " + list.get(i));
		}

		// 获取列表的长度
		long length = jedis.llen("site-list");
		System.out.println("Length of list: " + length);

		// 列表头部移除元素
		String element = jedis.lpop("site-list");
		System.out.println("Element removed from head: " + element);

		// 从列表尾部移除元素
		element = jedis.rpop("site-list");
		System.out.println("Element removed from tail: " + element);

		// Redis Java Keys 实例
		// 存储
		jedis.set("key1", "value1");
		// 设置过期时间:
		jedis.expire("key1", 30);// 设置有效期时间为30秒

		// 获取redis库内所有key数据并输出
		Set keys = jedis.keys("*");
		Iterator it = keys.iterator();
		while (it.hasNext()) {
			String key = it.next();
			System.out.println(key);
		}

		// Redis Java Hash 实例
		// 向 redis 中添加一个哈希表类型的键值对,哈希表中添加了 f1 - 111 键值对
		// 返回值为添加成功的键值对个数
		long result1 = jedis.hset("hash_key1", "k1", "111");
		System.out.println("result1:" + result1);
		long result2 = jedis.hset("hash_key1", "k2", "222");
		System.out.println("result2:" + result2);
		// 判断 hash_key1 对应的哈希表中是否存在 key 为 k1 的键值对,存在返回 true ,否则返回 false
		boolean exitFlag = jedis.hexists("hash_key1", "k1");
		System.out.println("exitFlag:" + exitFlag);

		// 删除 hash_key1 对应的哈希表中 key 为 k1 和 k2 的键值对
		long delFlag = jedis.hdel("hash_key1", "k1", "k1");
		System.out.println("delFlag:" + delFlag);

		// 获取 hash_key1 对应的哈希表中所有键值对的 key 值
		Set r1 = jedis.hkeys("hash_key1");
		System.out.println("r1:" + r1);
		// 获取 key1 对应的哈希表中所有键值对的 value 值
		List r2 = jedis.hvals("hash_key1");
		System.out.println("r2:" + r2);

		// 用哈希表作为参数,直接将哈希表中的键值对都添加到 hash_key2 的哈希表中
		// 返回值为添加成功的键值对个数
		HashMap hashMap = new HashMap<>();
		hashMap.put("k1", "111");
		hashMap.put("k2", "222");
		hashMap.put("k3", "333");
		long result3 = jedis.hset("hash_key2", hashMap);
		System.out.println("result3:" + result3);

		// 获取 hash_key1 对应的哈希表中,k1 对应的 value 值
		String result4 = jedis.hget("hash_key1", "k1");
		System.out.println("result4:" + result4);

		// 获取hash中所有字段和值
		Map hashMap1 = jedis.hgetAll("hash_key1");
		for (java.util.Map.Entry entry : hashMap.entrySet()) {
			System.out.println(entry.getKey() + ": " + entry.getValue());
		}

		// Redis Java Set 实例
		// 向set中添加元素
		jedis.sadd("mySet1", "element1");
		jedis.sadd("mySet1", "element2");
		jedis.sadd("mySet1", "element3");

		// 获取set中的所有元素
		Set elements = jedis.smembers("mySet1");
		// 打印所有元素
		for (String element1 : elements) {
			System.out.println(element1);
		}

		// 判断set 键值对的集合中,element1 是否存在,存在返回 true,不存在返回 false
		exitFlag = jedis.sismember("mySet1", "element1");
		System.out.println("exitFlag:" + exitFlag);

		// 获取集合 mySet1 中的元素个数
		long count = jedis.scard("mySet1");
		System.out.println("count:" + count);

		// 随机弹出(删除)集合中的一个元素
		String str1 = jedis.spop("mySet1");
		System.out.println("str1:" + str1);

		jedis.sadd("mySet2", "element2");
		jedis.sadd("mySet2", "element3");
		jedis.sadd("mySet2", "element4");
		// 获取集合 mySet1 和 mySet2 的交集
		Set set1 = jedis.sinter("mySet1", "mySet2");
		System.out.println("set1:" + set1);

		// 将集合 mySet1 和 mySet2 的交集保存到集合 mySet3 中,返回值是交集的个数.
		// 如果 mySet3 中原本有数据,原来的数据会被清空
		count = jedis.sinterstore("mySet3", "mySet1", "mySet2");
		System.out.println("count:" + count);
		Set set3 = jedis.smembers("mySet3");
		System.out.println("set3:" + set3);

		// 从 myset1 中移除元素
		jedis.srem("myset1", "element2");
		System.out.println("set1:" + set1);

		// Redis Java SortedSet 实例
		// 向名为 mysortedset 的 SortedSet 中添加元素
		jedis.zadd("mysortedset", 1.0, "element1");
		jedis.zadd("mysortedset", 2.0, "element2");
		jedis.zadd("mysortedset", 3.0, "element3");

		// 获取 SortedSet 中的所有元素和分数
		System.out.println("SortedSet 中的所有元素和分数: " + jedis.zrangeWithScores("mysortedset", 0, -1));

		// 从 mysortedset 中移除元素
		jedis.zrem("mysortedset", "element2");

		// 获取更新后的 SortedSet 中的所有元素和分数
		System.out.println("更新后的 SortedSet 中的所有元素和分数: " + jedis.zrangeWithScores("mysortedset", 0, -1));

		// 最后,记得关闭Redis连接,释放资源,
		jedis.close();
	}

}

你可能感兴趣的:(Redis,JAVA,java,redis,开发语言)