大概内容:
- java连接redis
- springboot连接redis操作。
- 完成缓存操作
- redis实现分布式锁
1 连接redis
默认有三种方式连接redis.
第一种:jedis—传统的项目–ssm
第二种:lettuce:---->刚出现没有多久就被springboot整合进来。
第三种:springboot连接redis
1.1 jedis操作redis服务器
(1)引入jedis依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
(2)编写相关的代码
对string数据类型操作
@Test
public void testJedis(){
Jedis jedis = new Jedis("192.168.64.130",6379);
//该类包含很多对redis操作的方法--而这些方法和原来我们使用的命令一样。
//redis 里的 keys *
Set<String> keys = jedis.keys("*");
System.out.println(keys);
System.out.println("--------------");
/*
对string数据类型操作
*/
//set key value: 设置指定 key 的值
String set = jedis.set("k2", "你好,张三");
System.out.println(set);
//get key 获取指定 key 的值。
String k2 = jedis.get("k2");
System.out.println(k2);
//expire key seconds: 为指定的key设置过期时间
String setex = jedis.setex("k3", 60, "李四");
String k3 = jedis.get("k3");
System.out.println(k3);
//mset key value key value … 同时设置一个或多个 key-value 对。
String mset = jedis.mset("k4", "v4", "k5", "v5");
System.out.println(mset);
//mget key key … 获取所有(一个或多个)给定 key 的值。
List<String> mget = jedis.mget("k2", "k5");
System.out.println(mget);
//incr key 将 key 中储存的数字值增一。减一jedis.decr()
jedis.set("k6", "18");
long k6 = jedis.incr("k6");
System.out.println(k6);
}
对hash数据类型操作
Map<String,String> map = new HashMap<>();
map.put("name","小林");
map.put("age","18");
map.put("address","海南");
//jedis.hset("k7",map);
//hset key field value 将哈希表 key 中的字段 field 的值设为 value
String hget = jedis.hget("k7", "name");
System.out.println(hget);
//hgetall key 获取在哈希表中指定 key 的所有字段和值
System.out.println(jedis.hgetAll("k7"));
//hkeys key 获取所有哈希表中的字段
System.out.println(jedis.hkeys("k7"));
//hvals key 获取哈希表中所有值
System.out.println(jedis.hvals("k7"));
Map<String, String> map1 = jedis.hgetAll("k7");
System.out.println(map1);
//hset key field value 将哈希表 key 中的字段 field 的值设为 value
jedis.hset("k1","name","张三");
//hget key field 获取存储在哈希表中指定字段的值/td>
String hget1 = jedis.hget("k1", "name");
System.out.println(hget);
list队列
//LPush key value value value… 将一个或多个值插入到列表头部
jedis.lpush("k8","小王","小李","小徐","小周");
//Redis Lrange 返回列表中指定区间内的元素
List<String> k8 = jedis.lrange("k8", 0, -1);
System.out.println(k8);
//lpop key 移出并获取列表的第一个元素
List<String> k81 = jedis.lpop("k8", 1