1.添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.配置application.yml
spring: redis: host: 127.0.0.1 port: 6379 database: 0
账号密码没有设置则不需要配置,database:后填写你想使用的redis下的某个库,我这里使用的是db0(默认db0)
3. RedisService接口
public interface RedisService { boolean create(String key, String value); boolean createByKeyAndTime(String key, String value); String findByKey(String key); boolean deleteByKey(String key); }
4.RedisServiceImpl类
@Service public class RedisServiceImpl implements RedisService { @Autowired private StringRedisTemplate redisTemplate; @Override public boolean create(String key, String value) { String realKey = String.format(RedisConstant.TOKEN_PREFIX, key); redisTemplate.opsForValue().set(realKey, value);//向redis里存入数据和设置缓存时间 return redisTemplate.hasKey(realKey); } @Override public boolean createByKeyAndTime(String key, String value) { String realKey = String.format(RedisConstant.TOKEN_PREFIX, key); redisTemplate.opsForValue().set(realKey, value, 60 * 10, TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间 return redisTemplate.hasKey(realKey); } @Override public String findByKey(String key) { String realKey = String.format(RedisConstant.TOKEN_PREFIX, key); return redisTemplate.opsForValue().get(realKey); } @Override public boolean deleteByKey(String key) { String realKey = String.format(RedisConstant.TOKEN_PREFIX, key); return redisTemplate.delete(realKey); } }
5.测试类
@SpringBootTest @RunWith(SpringRunner.class) public class RedisServiceImplTest { @Autowired private RedisService redisService; @Test public void create() { if (redisService.create("test1", "1")) { System.out.println("1"); System.out.println(redisService.findByKey("test1")); System.out.println(redisService.deleteByKey("test1")); } else { System.out.println("2"); } } }
6 RedisConstant接口
public interface RedisConstant { String TOKEN_PREFIX="myRedis_%s";//储存的key以myRedis_开头 }
7.StringRedisTemplate详细用法测试类
@SpringBootTest @RunWith(SpringRunner.class) public class RedisServiceImplTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void testRedis() { redisTemplate.opsForValue().set("test", "100",60*10, TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间 redisTemplate.boundValueOps("test").increment(-1);//val-1 redisTemplate.opsForValue().get("test");//根据key获取缓存中的val redisTemplate.boundValueOps("test").increment(1);//val+1 redisTemplate.getExpire("test");//根据key获取过期时间 System.out.println(redisTemplate.getExpire("test")); redisTemplate.getExpire("test",TimeUnit.SECONDS);//根据key获取过期时间并换算成指定单位 System.out.println(redisTemplate.getExpire("test",TimeUnit.SECONDS)); redisTemplate.delete("test");//根据key删除缓存 redisTemplate.hasKey("111");//检查key是否存在,返回boolean值 System.out.println( redisTemplate.hasKey("111")); redisTemplate.opsForSet().add("red_123","1","2","3");// redisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间 redisTemplate.opsForSet().isMember("red_123", "1");//根据key查看集合中是否存在指定数据 System.out.println( redisTemplate.opsForSet().isMember("red_123", "1")); redisTemplate.opsForSet().members("red_123");//根据key获取set集合 redisTemplate.opsForValue();//操作字符串 redisTemplate.opsForHash();//操作hash redisTemplate.opsForList();//操作list redisTemplate.opsForSet(); //操作set redisTemplate.opsForZSet();//操作有序set } }