转载自:
StringRedisTemplate继承了RedisTemplate<String,String, String>,的key和ivalue都必须是String类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表表),set(集合)及zset(sorted set:有序集合)
StringRedisTemplate中包含opsForValue(字符串),opsForZSet(sorted set:有序集合),opsForList(列表),opsForSet(集合),opsForHash(哈希)的处理
一.写入
1.opsForValue().set()
//存入,无过期时间
redisTemplate.opsForValue().set("key1","value1");
//存入,有过期时间,过期时间到后,自动删除
redisTemplate.opsForValue().set("key1","value1",60,TimeUnit.SECONDS);
2 opsForValue().setlfAbsent()
//当前key不存在,写入值,并返回true;当前key已经存在,不处理,返回false; Absent:缺少的,
Boolean bool = redisTemplate.opsForValue().setIfAbsent("key1","value1",60,TimeUnit.SECONDS);
3 opsForValue().setlfPresent()
//当前key已经存在,写入值,并返回true;当前key不存在,不处理,返回false;;Present:存在的
Boolean bool1 = redisTemplate.opsForvalue().setifpresent("key1","value1",60,TimeUnit.SECONDS);
4 opsForValue().getAndSet()
//获取原来key的value,再将新的value写入
String dataStri = redisTemplate.opsForValue().getAndSet("keyy1","value2");
5 opsForValue().multiSet()
//批量设置
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
redisTemplate.opsForValue().multiSet(map);
二.读取
1 opsForValue().get()
String datastr = redisTemplate.opsForValue().get("key1");
2 opsForValue().getAndSet()
//获取原来key的value,再将新的value写入
String dataStr1 = redisTemplate.opsForValue().getAndSet("key1", "value2");
3 opsForValue().multiGet()
//批量获取
List<String> keylist = new Arraylist<>();
keyList.add("key1");
keyList.add("key2");
List<String> valuelist = redisTemplate.opsForV.alue().multiGet(keylist);
3.2 opsForValue().size()
//获取value的字符长度
Long len = redisTemplate.opsForValue().size("key1");
三.追加
1 opsForValue().append()
//追加到末尾,返回追加后的字符长度;如果key不存在,则新设置value;如果key存在,则原value追加新的value;
Integer a = redisTemplate.opsForValue().append("key1","value2");
四、递增或递减
1 opsForValue().increment()
//值进行递增或递减,返回新value;要求value必须可转成数值理
//如果key不存在,则在默认值0的基础上进行递增或递减
//increment:递增;可以是使用负数进行递减
Long num1 = redisTemplate.opsForvalue().increment("key1", -1);
Long num = redisTemplate.opsForValue().increment("key1", 1);
5.2 opsForValue().decrement()
//值进行递增或递减,返回新的值;要求value必须可转成数值型2
//如果key不存在,则在默认值0的基础上进行递增或递减
//decrement:递减;可以是使用负数进行递增
Long num2 = redisTemplate.opsForValue().decrement("key2", 1);
Long num3 = redisTemplate.opsForvalue().decrement("key2", -1)
特别注意:decrement使用时,当参数delta递减值为负数时,表示递增,逻辑相反
五.删除
redisTemplate.delete("key1");