package com.imooc.utils;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.stereotype.Component;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;/** * @Description redis工具类 * @Date **/@Componentpublic class RedisOperator { @Autowired private StringRedisTemplate redisTemplate; /** *功能描述: 实现命令:DEL key ,删除一个key * @params * @return void */ public void del(String key){ redisTemplate.delete(key); } /** *功能描述: 实现命令:expire 设置过期时间,单位秒 * @params * @return void */ public void expire(String key,long timeout){ redisTemplate.expire(key,timeout, TimeUnit.SECONDS); } /** *功能描述: 实现命令:GET key ,返回key所关联的字符串值 * @params * @return java.lang.String */ public String get(String key){ return (String)redisTemplate.opsForValue().get(key); } /** *功能描述: 实现命令:INCR key 增加key一次 * @params * @return long */ public long incr(String key,long delta){ return redisTemplate.opsForValue().increment(key,delta); } /** *功能描述: 实现命令:KEYS pattern ,查找所有符合给定模式 pattern的key * @params * @return java.util.Set<java.lang.String> */ public Set<String> keys(String pattern){ return redisTemplate.keys(pattern); } /** *功能描述: 实现命令 SET key value,设置一个key-value(将字符串值value 关联道key) * @params * @return void */ public void set(String key,String value){ redisTemplate.opsForValue().set(key, value); } /** *功能描述: 实现命令: SET key value EX seconds ,设置key-value和超时时间(秒) * @params * @return void */ public void set(String key,String value,long timeout){ redisTemplate.opsForValue().set(key, value, timeout,TimeUnit.SECONDS); } /** *功能描述: 实现命令 TTL key,以秒为单位,返回给定key的剩余生存时间(TTL,time to live) * @params * @return long */ public long ttl(String key){ return redisTemplate.getExpire(key); }//=====哈希表 /** *功能描述: 实现命令:HSET key field value ,将哈希表key中的域 field的值设置为value * @params * @return void */ public void hset(String key,String field,Object value){ redisTemplate.opsForHash().put(key,field,value); } /** *功能描述: HGET key field ,返回哈希表 key中给定域field的值 * @params * @return */ public String hget(String key,String field){ return (String)redisTemplate.opsForHash().get(key,field); } /** *功能描述: 实现命令:HDEL key field[field...],删除哈希表key中的一个或多个指定域,不存在 * @params * @return */ public void hdel(String key,Object...fielde){ redisTemplate.opsForHash().delete(key,fielde); } /** *功能描述: 实现命令:HGTALL key,返回哈希表key中,所有的域和值。 * @params * @return */ public Map<Object,Object> hgetall(String key){ return redisTemplate.opsForHash().entries(key); }//======list列表 /** *功能描述: 实现命令:LPUSH key value,将一个值 value 插入道列表key的表头 * @params * @return long */ public long lpush(String key,String value){ return redisTemplate.opsForList().leftPush(key,value); } /** *功能描述: 实现命令:LPOP key ,移除并返回列表key的头元素 * @params * @return java.lang.String */ public String lpop(String key){ return (String)redisTemplate.opsForList().leftPop(key); } /** *功能描述: 实现命令:RPUSH key value ,将一个值value插入到列表key的表尾(最右边) * @author zhangxin * @date 2023/9/19 * @params * @return long */ public long rpush(String key,String value){ return redisTemplate.opsForList().rightPush(key, value); }}
调用方法:
package com.imooc.controller;import com.imooc.pojo.Users;import com.imooc.pojo.vo.UsersVO;import com.imooc.utils.RedisOperator;import org.springframework.beans.BeanUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import java.util.UUID;@Controllerpublic class BaseController { @Autowired private RedisOperator redisOperator; public UsersVO conventUsersVO(Users user){ // 实现用户的redis会话 String uniqueToken = UUID.randomUUID().toString().trim(); redisOperator.set(REDIS_USER_TOKEN +":" + user.getId(),uniqueToken); UsersVO usersVO = new UsersVO(); //a拷贝到b BeanUtils.copyProperties(user,usersVO); usersVO.setUserUniqueToken(uniqueToken); return usersVO; }}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。