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;
/**
*
* 说明: 在Java中使用redis中的String类型
* 作者: Guo.shiLin
* 日期: 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;
/**
*
*
* 说明: redis list类型底层是一个链表,按照插入的顺序进行排序。
* 作者: Guo.shiLin
* 日期: 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 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;
/**
*
* 说明: 在Java中redis set的使用,不能放重复元素。
* 作者: Guo.shiLin
* 日期: 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;
/**
*
* 说明: redis zset排序
* 作者: Guo.shiLin
* 日期: 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类型的field和value的映射表,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;
/**
*
* 说明: redis对Map的使用
* 作者: Guo.shiLin
* 日期: 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 hashMap = new HashMap();
hashMap.put("name", "Tom");
hashMap.put("age", "12");
hashMap.put("sex", "man");
//添加hash类型数据
jedis.hmset("user", hashMap);
//第一个参数是redis中hash类型的key,第二、三、四个参数是map里面对用的key
List 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 iterator = jedis.hkeys("user").iterator();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key + ":" + jedis.hmget("user", key));
}
}
}