Java之redis五大类型的使用

redis在java中不能直接使用需要jedis来做中间转换。

所需jar包:

1.String类型

string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。value只最多是512M。在java中代码如下:
package com.gsl.redis;

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>说明:</b> 在Java中使用redis中的String类型
 * <b>作者:</b> Guo.shiLin 
 * <b>日期:</b> 2018年8月9日
 * @version 1.0
 */
public class RedisStringJava {
	public static void main(String[] args) {
		//连接本地redis服务器
		Jedis jedis = new Jedis("localhost");
		System.out.println("本地Redis连接成功!");
		//为redis设置key-value值
		jedis.set("baidu", "www.baidu.com");
		System.out.println("保存值成功!");
		System.out.println("获取key的值:" + jedis.get("baidu"));
	}
}

2.list类型

redis列表是简单的字符串列表,按照插入的顺序排序。底层就是一个链表。Java代码如下:
package com.gsl.redis;

import java.util.List;

import redis.clients.jedis.Jedis;

/**
 * 
 * <br>
 * <b>说明:</b> redis list类型底层是一个链表,按照插入的顺序进行排序。
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月9日
 * @version 1.0
 */
public class RedisListJava {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("本地redis连接成功");
		//存储数据到列表中
		jedis.lpush("IT", "JAVA");
		jedis.lpush("IT", "PHP");
		jedis.lpush("IT", "C++");
		//获取存储的数据并输出
		List<String> list = jedis.lrange("IT", 0, 3);
		list.forEach(string -> System.out.println(string));
	}
}

3.set集合

类似list的无序集合,保证列表中不会有重复数据。它是通过HashTable来实现的。Java代码如下:

package com.gsl.redis;

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>说明:</b> 在Java中redis set的使用,不能放重复元素。
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月15日
 * @version 1.0
 */
public class RedisSetDemo {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("连接本地的 Redis 服务成功!");
		//清空user
		jedis.del("user");
		//添加
		jedis.sadd("user", "Tom");
		jedis.sadd("user", "Tom");
		jedis.sadd("user", "chenze");
		jedis.sadd("user", "likui");
		jedis.sadd("user", "liumen");
		//删除chenze
		jedis.srem("user", "chenze");
		System.out.println(jedis.smembers("user"));//获取所有的value
		System.out.println(jedis.sismember("user", "likui"));//判断集合中是否有该元素
		System.out.println(jedis.scard("user"));//返回集合的元素个数
	}

}

4.sort排序

代码如下:
package com.gsl.redis;

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>说明:</b> redis zset排序
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月15日
 * @version 1.0
 */
public class RedisSortDemo {
	
	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("连接本地的 Redis 服务成功!");
		//jedis排序
		//注意,此处rpush和lpush是list的操作。是一个双向链表
		jedis.del("a");//先清除数据
		jedis.rpush("a", "1");
		jedis.rpush("a", "6");
		jedis.rpush("a", "4");
		jedis.rpush("a", "9");
		jedis.rpush("a", "2");
		System.out.println(jedis.lrange("a", 0, -1));
		System.out.println(jedis.sort("a"));
		System.out.println(jedis.lrange("a", 0, -1));
		
	}
}

5.Hash

Redis hash 是一个键值对集合。Redis hash是一个string类型的fieldvalue的映射表,hash特别适合用于存储对象。代码如下:

package com.gsl.redis;

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

import redis.clients.jedis.Jedis;

/**
 * <br>
 * <b>说明:</b> redis对Map的使用
 * <b>作者:</b> Guo.shiLin
 * <b>日期:</b> 2018年8月13日
 * @version 1.0
 */
public class RedisMapDemo {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("localhost");
		System.out.println("本地redis连接成功");
		//创建hashMap并添加数据
		Map<String, String> hashMap = new HashMap<String, String>();
		hashMap.put("name", "Tom");
		hashMap.put("age", "12");
		hashMap.put("sex", "man");
		//添加hash类型数据
		jedis.hmset("user", hashMap);
		//第一个参数是redis中hash类型的key,第二、三、四个参数是map里面对用的key
		List<String> rsmap = jedis.hmget("user", "name", "age", "sex");
		System.out.println(rsmap);
		//删除map中的sex元素
		jedis.hdel("user", "sex");
		System.out.println(jedis.hmget("user", "sex"));//因为删除了所以返回null
		System.out.println(jedis.hlen("user"));//查看Map有多少元素
		System.out.println(jedis.exists("user"));//判断是否有user这个元素
		System.out.println(jedis.hkeys("user"));//获取user的key
		System.out.println(jedis.hvals("user"));//获取user的值
		Iterator<String> iterator = jedis.hkeys("user").iterator();
		while (iterator.hasNext()) {
			String key = iterator.next();
			System.out.println(key + ":" + jedis.hmget("user", key));
		}
	}

}

猜你喜欢

转载自blog.csdn.net/demo_gsl/article/details/81708479