1. 安装配置Redis并练习基础命令操作
-
中文网:Redis中文网
-
解压直接可以使用:
-
redis.windows.conf:配置文件
-
redis-cli.exe:redis的客户端
-
redis-server.exe:redis服务器端
-
安装Redis服务
1、由于上面虽然启动了redis,但是只要一关闭cmd窗口,redis服务就会停掉,所以考虑把redis安装为windows本地服务,随机启动。 2、安装服务
进入Redis安装目录执行以下命令:
redis-server --service-install redis.windows.conf --loglevel verbose
3、常用的redis服务命令。
卸载服务:redis-server --service-uninstall
开启服务:redis-server --service-start
停止服务:redis-server --service-stop
- 查看服务器信息:
info
- 设置键值对:
set key value
- 获取键值对:
get key
- 删除键:
del key
- 列出所有键:
keys *
- 字符串自增:
incr key
- 列表操作:
lpush key value
,rpop key
- 集合操作:
sadd key member
,smembers key
- 哈希操作:
hset key field value
,hget key field
- 排序:
sort key
- 事务:
multi
,exec
- 过期时间:
expire key seconds
- 持久化:
save
或bgsave
2. 练习Java客户端及SpringBoot项目中使用Redis
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置Redis
# application.properties
spring.redis.host=localhost
spring.redis.port=6379
使用RedisTemplate
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class RedisService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
public void setCache(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public Object getCache(String key) {
return redisTemplate.opsForValue().get(key);
}
}
3. 完成案例,在查询方法中使用Redis做缓存
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private RedisTemplate<String, User> redisTemplate;
public User getUserById(int id) {
String cacheKey = "user:" + id;
User user = (User) redisTemplate.opsForValue().get(cacheKey);
if (user == null) {
// 如果缓存中没有数据,则从数据库中获取
user = loadUserFromDatabase(id);
// 将数据存入缓存
redisTemplate.opsForValue().set(cacheKey, user);
}
return user;
}
private User loadUserFromDatabase(int id) {
// 从数据库加载用户信息的代码
// ...
}
}
这样,每次调用 getUserById
方法时,都会先尝试从 Redis 缓存中获取数据。如果缓存中没有,则从数据库中加载并存入缓存,从而提高了查询效率。