爬山的蜗牛旅程:八、springboot整合redis

学习springboot的旅程,就像蜗牛爬山,一点点的往上爬,一点点的欣赏旅途的风景

继续上一章的故事,小猿摸了摸光秃秃的脑袋,心想百来号人同时去数据库加载菜单数据,不慢才怪呢!但是怎样才能解决呢?压力都在数据库?怎么释放数据库的压力呢?换个高级数据库或搞数据库集群?小猿摇了摇头?今晚就要交差了,时间金钱不允许啊!小猿分析了一下,发现大家都向数据库请求静态数据或不常变动数据,比如菜单,历时数据啊等!小猿恍然大悟,从裤兜里掏出了。。。一本(只)redis宝典(U盘)!!

上面的故事是瞎编的,是为了引出redis。redis是啥?请看这
简单解释:redis就是基于内存的数据库。可以理解为类似数据库的中间件!

redis能干嘛? 能干很多事!其中能帮我们存储缓存数据(本章的主题)。特别是在分布式,服务器跟服务器之间实现共享缓存等!!!

springboot整合Redis

  • 第一步:下载安装redis(下载地址
  • 第二步:pom.xml引入
		<!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>io.lettuce</groupId>
                    <artifactId>lettuce-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
  • 第三步:在application.properties(application.ymx)配置redis
#Redis配置
spring.redis.database=0
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
spring.redis.jedis.pool.max-active=8
spring.redis.jedis.pool.max-idle=8
spring.redis.jedis.pool.max-wait=-1ms
spring.redis.jedis.pool.min-idle=0
  • 第四步:使用redis实现缓存管理和共享(请考虑线程安全性)
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
/**
 * redis 操作工具类 必须线程安全 synchronized修饰其方法
 */
@Component("redisUtil")
public class RedisUtil {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    //以下方法必须线程安全

    public synchronized void save(String key,String value){
        stringRedisTemplate.opsForValue().set(key,value);
    }

    public synchronized void del(String key){
        stringRedisTemplate.delete(key);
    }

    public synchronized String get(String key){
        return stringRedisTemplate.opsForValue().get(key);
    }
}
  • 自此小猿就搞定了redis的整合,用redis管理菜单缓存数据,释放了数据库查询压力,系统菜单加载速度明细提高。

就在小猿刚想喝口茶休息一下的时候,手机又响了起来。经理又来电说:“小猿啊,跟你说个事,公司扩招了,要招多百号人,我们这系统能不能支撑的了?而且听说公司还要搞一套手机端的,以我们这个系统为后台支持。。。。哔哩吧啦”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值