package cn.good.yan.basics.t3.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* Redis工具类
* @author shengren.yan
* @create 2022-12-21
*/
@Component
public class RedisC {
@Autowired
// private StringRedisTemplate redisTemplate;
private RedisTemplate redisTemplate;
/**
* 指定缓存失效时间
* @param key 键
* @param time 时间(秒)
* @return
*/
public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 根据key 获取过期时间
* @param key 键 不能为null
* @return 时间(秒) 返回0代表为永久有效
*/
public long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/**
* 判断key是否存在
* @param key 键
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 删除缓存
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
public void del(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
}
}
public void del(Integer key) {
this.del(String.valueOf(key));
}
// ============================String=============================
/**
* 普通缓存获取
* @param key 键
* @return 值
*/
public Object get(String key) {
return key == null ? null : redisTemplate.opsForValue().get(key);
}
public Object get(Integer key) {
return this.get(String.valueOf(key));
}
/**
* 普通缓存放入
* @param key 键
* @param value 值
* @return true成功 false失败
*/
public boolean set(String key, Object value) {
try {
redisTemplate.opsForValue().set(key, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public boolean set(Integer key, Object value) {
return this.set( String.valueOf(key) , value);
}
/**
* 普通缓存放入并设置时间
* @param key 键
* @param value 值
* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期
* @return true成功 false 失败
*/
public boolean set(String key, Object value, long time) {
try {
if (time > 0) {
redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
} else {
set(key, value);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 递增
* @param key 键
* @param delta 要增加几(大于0)
* @return
*/
public long incr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递增因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, delta);
}
/**
* 递减
* @param key 键
* @param delta 要减少几(小于0)
* @return
*/
public long decr(String key, long delta) {
if (delta < 0) {
throw new RuntimeException("递减因子必须大于0");
}
return redisTemplate.opsForValue().increment(key, -delta);
}
// ================================Map=================================
/**
* HashGet
* @param key 键 不能为null
* @param item 项 不能为null
* @return 值
*/
public Object hget(String key, String item) {
return redisTemplate.opsForHash().get(key, item);
}
/**
* 获取hashKey对应的所有键值
* @param key 键
* @return 对应的多个键值
*/
public Map<Object, Object> hmget(String key) {
return redisTemplate.opsForHash().entries(key);
}
/**
* HashSet
* @param key 键
* @param map 对应多个键值
* @return true 成功 false 失败
*/
public boolean hmset(String key, Map<String, Object> map) {
try {
redisTemplate.opsForHash().putAll(key, map);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* HashSet 并设置时间
* @param key 键
* @param map 对应多个键值
* @param time 时间(秒)
* @return true成功 false失败
*/
public boolean hmset(String key, Map<String, Object> map, long time) {
try {
redisTemplate.opsForHash().putAll(key, map);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 向一张hash表中放入数据,如果不存在将创建
* @param key 键
* @param item 项
* @param value 值
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value) {
try {
redisTemplate.opsForHash().put(key, item, value);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 向一张hash表中放入数据,如果不存在将创建
* @param key 键
* @param item 项
* @param value 值
* @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
* @return true 成功 false失败
*/
public boolean hset(String key, String item, Object value, long time) {
try {
redisTemplate.opsForHash().put(key, item, value);
if (time > 0) {
expire(key, time);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 删除hash表中的值
* @param key 键 不能为null
* @param item 项 可以使多个 不能为null
*/
public void hdel(String key, Object... item) {
redisTemplate.opsForHash().delete(key, item);
}
/**
* 判断hash表中是否有该项的值
* @param key 键 不能为null
* @param item 项 不能为null
* @return true 存在 false不存在
*/
public boolean hHasKey(String key, String item) {
return redisTemplate.opsForHash().hasKey(key, item);
}
/**
* hash递增 如果不存在,就�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目包含:JDK每个版本使用、包含Java8、Java9、Java11、Java13每个版本的使用、SpringBoot项目(AOP、IOC)、Spring6的使用、SpringCloud项目(注册中心、负载均衡、网关、消息队列)、SpringCloudAlibaba(分布式事务、流控管理、Nacos)、Redis、MyBatisPlus、Maven(版本控制、打包部署)
资源推荐
资源详情
资源评论
收起资源包目录
个人项目集合-综合案例(全家桶) (2000个子文件)
0034eac7447ce3023673b97e7625acb0be5b27 124B
00a2458554010b08525ff42b35010dd4a9dc9e 68B
0140ee8af5fe6058afe59bd388a4bd4ee1c6c9 44B
01d04662e555115e87fa214d594d41993a27ce 47B
01d2cd8066f2c68998134217d4be60ad5f6d0c 82B
01fc0aee0afe26c1b8969d31d1b216c2434500 91B
024aa0fcd9f7743386df30b22f8a2e667983c3 658B
026f73c1f020aa0beada620db49e0fa221375c 82B
0293eaac955e99520cea659bd5635aa150fb33 111B
02992dcbe4731181852fa0de4c4d81c28bf6b6 108B
02df9058e47bc7f76a8eed55484301ce7ca78d 81B
030dd7bd427902743e1c4f5a577ec605c72a9f 430B
0359a1b85fbac5818d9a9831a0b5dea32b6c6e 160B
035ac63503fde57b3ea7f2f5c49c12794a937d 79B
03c43779a66253abcbd3a0a2334db2b7f69f31 125B
03dc47d2d28078964d3e788ec06a4e09eb0642 1KB
042f3e2f5ded5ba284b12dc5f5cf9ebf4e3571 510B
0456c79027234bc307654541470da6a7a81a9d 235B
047a03f7d5d7efa4c3ab31a9598a6312ed80fd 487B
04dc42fc62db3f242c0c2d0c09e71161752396 900B
051b061d2b3c898707e1bc27e2d6bbd0b7bbc6 73B
0524deb604355bbaf7d44d161d1a402725403a 150B
05360ff3a26db6c6748257d9a4f7c18c28f697 2KB
054afb621ebe51aac9587ba36c1faed672f723 108B
05ba0527be31b12490b0fa7a7781b75b3823cc 709B
05e3b18372b467246fbc42fc5a864b8e90c5e8 44B
062df9670479d96bd244bc2ec89a468aae0a1c 560B
065e0f542d4a4c51eadb134f74f0976b1b40a1 702B
065feece90b415711ac76ec8004571820e37a0 49B
0673601f8d67a7b71586b44b18612697c3c917 47B
0690e9401eed55d9bf15d947c28a00cdcefc3b 46B
06ae24012927be3014462b80f899d0c1410103 464B
06b3bf5eccd6f568511fb5113edf3e6f704e7c 2KB
06b9202f7db200e5142ef81a5ec5f35190c98b 124B
06bb465bcd3f90f6cdf0136df1b3f1abaf9478 44B
06d583bc0d1e0bdecdd8840ca1e81bf5ffb251 367B
06f365964059f4367869856997b8d076cd6933 259B
070253b769769bd15544872fb58bcb6de9cf45 108B
07500e922338ab7e48c47a525689c6c636ba5e 230B
0772da86b60b656a6527eee908cc6094f83100 82B
079c8c8c3d0ccd4071acf123043993a5cb2c5d 2KB
07a29a5391ca0caf754db1379baca8c0dfaa1a 342B
0846f603eb08e61aba53f0ac4185395a125d1a 311B
0892df1144e0f033beedbb48cf2cdbfe49954a 117B
08bae098bfceb0078e5f747ad86feb7251b917 751B
08bf3a6d66c759d37de9af5be69974729d8fc4 55B
08c297f89a808074153f7ccdb7b292c96d8a75 653B
0910b1cbc9a181159076abe0e5f8074a9376f1 45B
0959ec986e5a0703be175d0371d7c0b7dcf06a 146B
0978a184cea26415032400e660fdacfa6de112 74B
09f910e5033407b97ca5aa3e4cb6717ae7a414 218B
09fb6605f877feb2ef4276b42d431584e693eb 2KB
0a009e8dbb44d43c27fbb8555e1303f3991043 256B
0a3aebdb2419a87b667837f37f2e0bcc3c9ead 79B
0a58f6e4c6fb1c523c00eeeba457c163a15ad4 218B
0a6dae9930c0f2d49d51bd0ccb16be743bad98 63B
0a72c908a354e843148c81c1857a1ccfdf35c5 457B
0ac8d4a17aebefaeff59f5fd55eb26e8acf4f9 112B
0acd8eea7a143f7db7184dac2c6b3ef9722596 60B
0af63c141ea23ea5848aeaee0d30b63eb5cb26 9KB
0b1c8b4ce42005000022b6c2bc95e3d4d7344a 362B
0b674e31c50172b5385685ddef5522a5d13c68 74B
0b81000010a5aa91dc17f8622587dbbd94d363 245B
0bdbb323ac83ad23b104e1853cbdddd5c9a7e4 2KB
0bff7ce2faf1bbfcc9fe3aad95b1a59ab72c46 270B
0c5742020914431fe8a0aa2e7ed763d9533a67 439B
0c69e55f1219764a08f767a8cb2290a3d97883 75B
0c8d289a505cbcd88b38a08334b356536a51e2 130B
0c95f2fe102bb272776e38d97e71400c4b52dc 46B
0ca0a1323811bf620abcc167dd90be45f9f5f4 45B
0cbc6fcd97a9a4ece5c6855c10eff86c36f377 2KB
0ce293ccfd7ea106bb2b00f0e80b5dff6c64f0 46B
0cfac436d71abc487c5fe31751ba40d73c1b6c 405B
0d14f9c2d35d68b71660d37832675a7f343a73 48B
0d2e20811e35814c55e282fc748bf5df86c4dc 45B
0e318c90db3bfc4e15dc0228be956f872b9c88 1KB
0e343c2c900fe732b74f03faaf8efbfb1412d3 396B
0e65002684ba683cc579408b21ee470573aeac 233B
0ea4519197db05ef82b25f424c80e9df156400 493B
0edfb527ea44abf089fd00ea82472b58a51e48 345B
0f0713ac97cefdbd3c594e5227bd11b577e5e4 119B
0f0758fdf54cc93e58ad5edae6de923f973802 288B
0f1a497ee724f4fd9e41ae38461631fe4ec86c 118B
0f5350f2203c17de4fdc6b5b3844bd7dd5236c 959B
0f7ef5452c3d65dab2dd8741046d301245ec0b 60B
0faf3f8b80dbe9424b8ab16dff1ae00ca93440 903B
0fb977ec32eed946e9efc8b986a4a4042edf79 47B
0fc0bde4184e8d41ff72d79507d509f6e08474 481B
1003581b7bdbea7e9461d36a8c70fe74a295aa 432B
1019740b08e84f46d9912ef0fca8d86083230d 339B
106c00424586152f6aeb3bef2a05e2387b678e 46B
106d196e7c618b8e9bc72e3b8a43154b1ad326 710B
1082272c06feae1d113e15a19d8b13b1356e75 110B
109103bd1bb9eaf4984fe066f3ca5dac2a9e02 67B
1093bd87529ba0284049cfe36344dadb2d94ba 90B
10de004f0582d775945169f8a49975d7b23e37 46B
10e913646db9521d3810b52343e6388232ef1b 204B
112131ebed3f68c7550403114f9c90df986cea 206B
1122f497e0c21f32102fc0e4671976884283ff 79B
11ac0b179277d3bda4633bf01703ca7bc3c24d 60B
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
优秀的颜
- 粉丝: 612
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功