1. Redis是什么?
Redis 是一款key-value存储结构的内存及NoSQL数据库。
2.特点
- 支持多种数据存储格式
- 支持持久化
- 支持集群
1.安装Redis
2.exe目录下 进入到cmd
3.输入启动命令 redis-server.exe redis.windows.conf(服务端启动命令)
redis -cli.exe 客户端启动命令
redis -cli
set key value 存储值
get key 取值
set key value2 修改值
hset keya a1 aa1
hset keya a2 aa2
hget keya a1
"aa1"
hget keya a2
"aa2"
hget keya a3
(nil)
3.整合Springboot
(1) 创建Spring项目时勾选Redis选项
(2) 创建坐标,导入对应的jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-start-data-redis</artifactId>
</dependency>
(3) 做相应的配置 yml
spring:
redis:
# 地址
host: 172.16.234.121
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码(如没有密码请注释掉)
password: 1234
# 连接超时时间
timeout: 10s
# 是否开启ssl
ssl: false
(4) 使用
@SpringBootTest
public class SpringbootApplication {
@AutoWired
private RedisTemplate redisTemplate;
@Test
void set(){
ValueOperation ops = redisTemplate.opsForValue();
ops.set("age",18);
}
@Test
void get(){
ValueOperation ops = redisTemplate.opsForValue();
Object age = ops.get("age");
System.out.println(age);
}
//RedisTemplate 提供操作各种数据存储类型的接口API 如下举例为Hash类型
@Test
void set(){
ValueOperation ops = redisTemplate.opsForHash();
ops.put("info","a","aa"); //第一个值为key 第二个值为hashKey 第三个值是value
}
@Test
void get(){
HashOperation ops = redisTemplate.opsForHash();
Object val= ops.get("info","a");
System.out.println(val);
}
}
这里有个问题就是在客户端的存的数据,和springboot这里设置的key-value值不能同步,根本原因是客户端所操作的数据是string类型,所以上面的redisTemplate就需要变一变了,不然在客户端是不能根据key查到springboot中设置的值的。按照如下方式修改:
@SpringBootTest
public class SpringbootApplication {
@AutoWired
private StringRedisTemplate stringRedisTemplate;
//去拿客户端设置的值
@Test
void get(){
ValueOperation<String,String> ops = stringRedisTemplate.opsForValue();
String age = ops.get("age");
System.out.println(age);
}
}
总结:客户端 RedisTemplate 以对象作为key和value,内部对数据进行序列化
解决方法: StringRedisTemplate 以字符串作为key和value,与redis客户端操作等效
jedis技术
使用步骤
1. 导入包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
2.配置:
spring:
redis:
host: localhost
port: 6379
client-type: jedis //默认lettuce
jedis:
pool:
max-active: 16