redis缓存的存取使用

第一步:导入maven包

org.springframework.boot
spring-boot-starter-data-redis

第二步:
写一个redisUtile的工具类:
package com.nanyinkj.loanshop.utils.redis;

import org.springframework.data.redis.core.*;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;

@Component
public class RedisUtil {

@Resource
private RedisTemplate redisTemplate;

/**
 * 写入缓存
 * @param key
 * @param value
 * @return
 */
public boolean set(final String key, Object value) {
    boolean result = false;
    try {
        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
        operations.set(key, value);
        result = true;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}
/**
 * 写入缓存设置时效时间
 * @param key
 * @param value
 * @return
 */
public boolean set(final String key, Object value, Long expireTime) {
    boolean result = false;
    try {
        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
        operations.set(key, value);
        redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
        result = true;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}
/**
 * 批量删除对应的value
 * @param keys
 */
public void remove(final String... keys) {
    for (String key : keys) {
        remove(key);
    }
}


public Long increment(Object key,Integer l){
    Long aLong = redisTemplate.opsForValue().increment(key,l);
    return aLong;
}

/**
 * 批量删除key
 * @param pattern
 */
public void removePattern(final String pattern) {
    Set<Serializable> keys = redisTemplate.keys(pattern);
    if (keys.size() > 0)
        redisTemplate.delete(keys);
}



/**
 * 删除对应的value
 * @param key
 */
public void remove(final String key) {
    if (exists(key)) {
        redisTemplate.delete(key);
    }
}
/**
 * 判断缓存中是否有对应的value
 * @param key
 * @return
 */
public boolean exists(final String key) {
    return redisTemplate.hasKey(key);
}
/**
 * 读取缓存
 * @param key
 * @return
 */
public Object get(final String key) {
    Object result = null;
    ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
    result = operations.get(key);
    return result;
}
/**
 * 哈希 添加
 * @param key
 * @param hashKey
 * @param value
 */
public void hmSet(String key, Object hashKey, Object value){
    HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
    hash.put(key,hashKey,value);
}

/**
 * 哈希获取数据
 * @param key
 * @param hashKey
 * @return
 */
public Object hmGet(String key, Object hashKey){
    HashOperations<String, Object, Object>  hash = redisTemplate.opsForHash();
    return hash.get(key,hashKey);
}

//从redis里面获取或者从数据库里面获取


/**
 * 列表添加
 * @param k
 * @param v
 */
public void lPush(String k,Object v){
    ListOperations<String, Object> list = redisTemplate.opsForList();
    list.rightPush(k,v);
}

/**
 * 列表获取
 * @param k
 * @param l
 * @param l1
 * @return
 */
public List<Object> lRange(String k, long l, long l1){
    ListOperations<String, Object> list = redisTemplate.opsForList();
    return list.range(k,l,l1);
}

/**
 * 集合添加
 * @param key
 * @param value
 */
public void add(String key,Object value){
    SetOperations<String, Object> set = redisTemplate.opsForSet();
    set.add(key,value);
}

/**
 * 集合获取
 * @param key
 * @return
 */
public Set<Object> setMembers(String key){
    SetOperations<String, Object> set = redisTemplate.opsForSet();
    return set.members(key);
}

/**
 * 有序集合添加
 * @param key
 * @param value
 * @param scoure
 */
public void zAdd(String key,Object value,double scoure){
    ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
    zset.add(key,value,scoure);
}

/**
 * 有序集合获取
 * @param key
 * @param scoure
 * @param scoure1
 * @return
 */
public Set<Object> rangeByScore(String key,double scoure,double scoure1){
    ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
    return zset.rangeByScore(key, scoure, scoure1);
}

}

第三部:在service里面可以拿到数据库的数据或者从redis里面拿出数据,

@Override
public List findAllByConfigClass(Integer id) {
String s = (String) redisUtil.get(“1”);
if(s!=null && !"".equals(s)){
List configs = JSON.parseArray(s, Config.class);
return configs;
}
List all = configDao.findAllByConfigClass(id);
String s2 = JSON.toJSONString(all);
redisUtil.set(“1”,s2,60L);
return all;
}
redis使用完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中使用Redis缓存可以通过使用RedisHelper类来实现。首先,你需要导入DeveloperSharp.Redis命名空间,然后可以使用该类提供的一些方法来存取字符串和对象数据。 对于存取字符串,你可以使用RedisHelper.SetStringKey方法存入一个字符串到Redis缓存中,例如: ``` RedisHelper.SetStringKey("MyText", "世界,你好"); ``` 然后,你可以使用RedisHelper.GetStringKey方法从Redis缓存中取出该字符串,例如: ``` string aa = RedisHelper.GetStringKey("MyText"); ``` 对于存取对象,你首先需要创建一个对象,例如: ``` teacher obj = new teacher { name = "王老师", age = 42 }; ``` 然后,使用RedisHelper.SetStringKey方法将该对象存入Redis缓存中,例如: ``` RedisHelper.SetStringKey("MyTeacher", obj); ``` 最后,你可以使用RedisHelper.GetStringKey<teacher>方法从Redis缓存中取出该对象,例如: ``` teacher t = RedisHelper.GetStringKey<teacher>("MyTeacher"); string Name = t.name; int Age = t.age; ``` 除了存取字符串和对象外,RedisHelper类还提供了很多其他常用功能,如批量缓存、过期时间设定、异步、哈希存储和有序集合存储等等。你可以查看RedisHelper类的其他方法来了解更多功能。 希望这些信息能够帮助到你。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [.NET/C#大型项目研发必备(11)--使用Redis缓存](https://blog.csdn.net/weixin_45237473/article/details/122695062)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [C# 使用Redis缓存](https://blog.csdn.net/qq_33678106/article/details/102916284)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值