1.1. 介绍

1.2. 安装与使用

- redis-server.exe 启动redis服务
- redis-cli.exe 启动客户端,,连接redis服务 -h 指定主机ip -p指定端口 -a指定密码
2. Redis数据类型
2.1. 5种常用数据类型

2.2. 各种数据类型的特点

3. Redis常用命令
3.1. 字符串操作命令

3.2. 哈希操作命令

3.3. 列表操作命令

3.4. 集合操作命令

3.5. 有序集合操作命令

3.6. 通用命令

4. 在Java中操作Redis
4.1. Redis的Java客户端

4.2. Spring Data Redis
4.2.1. 如何使用


4.2.2. 进行数据操作
4.2.2.1. 字符串类型数据
public void stringTest(){
// set
redisTemplate.opsForValue().set("name", "张三");
// get
String name = (String) redisTemplate.opsForValue().get("name");
System.out.println(name);
// setex
redisTemplate.opsForValue().set("age", "18", 3, TimeUnit.MINUTES); // 过期时间3分钟
// setnx
redisTemplate.opsForValue().setIfAbsent("sex", "男");
redisTemplate.opsForValue().setIfAbsent("sex", "女");
}
4.2.2.2. 哈希类型数据
public void hashTest(){
HashOperations hashOperations = redisTemplate.opsForHash();
// hset
hashOperations.put("100", "name", "Tom");
hashOperations.put("100", "age", "25");
// hget
String name = (String) hashOperations.get("100", "name");
String age = (String) hashOperations.get("100", "age");
System.out.println(name + "------->" + age);
// hkeys
Set keys = hashOperations.keys("100");
System.out.println(keys);
// hvals
List values = hashOperations.values("100");
System.out.println(values);
// hdel
hashOperations.delete("100","age");
keys = hashOperations.keys("100");
System.out.println(keys);
}
4.2.2.3. 操作列表类型数据
public void listTest(){
ListOperations listOperations = redisTemplate.opsForList();
// lpush
listOperations.leftPushAll("mylist","a", "b", "c", "d");
listOperations.leftPush("mylist", "e");
// llen
Long size = listOperations.size("mylist");
System.out.println(size);
// lrange
List mylist = listOperations.range("mylist", 0, -1);
System.out.println(mylist);
// rpop
listOperations.rightPop("mylist");
mylist = listOperations.range("mylist", 0, -1);
System.out.println(mylist);
}
4.2.2.4. 操作集合类型数据
@Test
public void setTest(){
SetOperations setOperations = redisTemplate.opsForSet();
// sadd
setOperations.add("set1", "a", "b", "c", "d");
setOperations.add("set2", "a", "b", "x", "y", "z");
// smembers
Set set1 = setOperations.members("set1");
System.out.println(set1);
// scard
Long size = setOperations.size("set2");
System.out.println(size);
// srem
setOperations.remove("set2","z");
size = setOperations.size("set2");
System.out.println(size);
// sinter
Set intersect = setOperations.intersect("set1", "set2");
System.out.println(intersect);
// sunion
Set union = setOperations.union("set1", "set2");
System.out.println(union);
}
4.2.2.5. 操作有序集合类型数据
public void testZSet(){
ZSetOperations zSetOperations = redisTemplate.opsForZSet();
// zadd
zSetOperations.add("zset", "a", 10);
zSetOperations.add("zset", "b", 10.2);
zSetOperations.add("zset", "c", 10.5);
// zrange
Set zset = zSetOperations.range("zset", 0, -1);
System.out.println(zset); // a b c
// zincreby
zSetOperations.incrementScore("zset", "a", 5);
zset = zSetOperations.range("zset", 0, -1);
System.out.println(zset); // b c a
// zrem
zSetOperations.remove("zset","a");
zset = zSetOperations.range("zset", 0, -1);
System.out.println(zset); // b c
}
4.2.2.6. 通用类型数据
public void commonTest(){
// keys
Set keys = redisTemplate.keys("*");
System.out.println(keys);
// exists
Boolean name = redisTemplate.hasKey("name");
Boolean age = redisTemplate.hasKey("age");
System.out.println(name);
System.out.println(age);
// type
for (Object key : keys) {
DataType type = redisTemplate.type(key);
System.out.println(key.toString() + "--------->" +type);
}
// del
redisTemplate.delete("name");
System.out.println(redisTemplate.hasKey("name"));
}