springboot2.x简单详细教程--整合Redis实战(第 九章)

一、分布式缓存Redis介绍 


    简介:讲解为什么要用缓存和介绍什么是Redis,新手练习工具
    

1.什么是Redis

​ 由c语言编写的,以键值对的形式存储的非关系数据库. 缓存技术(驻留在内存中)      CPU(寄存器) > 内存 > 磁盘

​ key:value

​ 支持5种数据类型:

​ String

​ Hash(哈希表)

​ list

​ set

​ sortedset(zset)

    1、redis官网 https://redis.io/download
    
    2、新手入门redis在线测试工具:http://try.redis.io/

         edis是所谓的键值存储,通常称为NoSQL数据库。键值存储的本质是能够在键内存储一些称为值的数据。只有当我们知道用于存储它的确切密钥时,才可以检索此数据。我们可以使用命令SET将值“fido”存储在键“server:name”中 

SET server:name "fido"

Redis将永久存储我们的数据,因此我们稍后可以询问“密钥服务器上存储的值是什么:名称?” 和Redis将回复“fido”: GET server:name => "fido"

 

二、源码编译安装Redis4.x

 redis安装可安装在本地,也可以装在linux系统上(推荐),可以租一个阿里云服务器不是很贵的。
    简介:使用源码安装Redis4.x和配置外网访问

    1、快速安装  https://redis.io/download#installation
            wget http://download.redis.io/releases/redis-4.0.9.tar.gz
          安装在linux系统上的命令()

         

上传到linux

 crt中 alt+p

1.  在 usr/local/redis下新建文件夹 redis

mkdir /usr/local/redis

2 将root下的redis移动到 /usr/local/redis 然后解包(不要加z)

mv redis-3.0.7.tar.gz  /usr/local/redis/
cd /usr/local/redis

tar -xvf redis-3.0.7.tar.gz

       我为了方便就安装在本地了

 1)

2)

    出现如图所示即可启动成功

3)想测试的话启动redis-cli.exe

        启动服务端:src/redis-server
            启动客户端:src/redis-cli

    2、默认是本地访问的,需要开放外网访问
        1)打开redis.conf文件在NETWORK部分修改
           注释掉bind 127.0.0.1可以使所有的ip访问redis
           修改 protected-mode,值改为no

   

 

三、SpringBoot2.x整合redis实战讲解

    简介:使用springboot-starter整合reids实战

        1、官网:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-features-redis
            集群文档:https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#cluster

        2、springboot整合redis相关依赖引入
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
        
        3、相关配置文件配置
            #=========redis基础配置=========
            spring.redis.database=0(0是默认,改成1,2都行)
            spring.redis.host=127.0.0.1
            spring.redis.port=6390
            # 连接超时时间 单位 ms(毫秒)
            spring.redis.timeout=3000

            #=========redis线程池设置=========
            # 连接池中的最大空闲连接,默认值也是8
            spring.redis.pool.max-idle=200(-1是不限制的意思

            #连接池中的最小空闲连接,默认值也是0。
            spring.redis.pool.min-idle=200
            
            # 如果赋值为-1,则表示不限制;pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
            spring.redis.pool.max-active=2000

            # 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时
            spring.redis.pool.max-wait=1000

        4、常见redistemplate种类讲解和缓存实操(使用自动注入)

            1、注入模板
            @Autowired
            private StirngRedisTemplate strTplRedis

            2、类型String,List,Hash,Set,ZSet
            对应的方法分别是opsForValue()、opsForList()、opsForHash()、opsForSet()、opsForZSet()

补充:

5.启动访问

1)

2)

3)redis-cli.exe也可以测试出来


四、Redis工具讲解

简介:高效开发方式 Redis工具类封装讲解和实战
        1、常用客户端 https://redisdesktop.com/download

        介绍redis客户端

1).根据自己的系统安装对应的客户端

2)

3)

4)

5)连接成功,点击ok

6)

7)

8)

9)

10)


 

总结

1, redis 最适合的场景

            Redis最适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就会有疑问,似乎Redis更像一个加强版的Memcached,那么何时使用Memcached,何时使用Redis呢?

         如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:

     1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
     2 、Redis支持数据的备份,即master-slave模式的数据备份。
     3 、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

2、会话缓存(Session Cache)

         最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗?

幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。

3、全页缓存(FPC)

除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。

再次以Magento为例,Magento提供一个插件来使用Redis作为全页缓存后端

此外,对WordPress的用户来说,Pantheon有一个非常好的插件  wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。

4、队列

Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。

如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从这里去查看。

5,排行榜/计数器

Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”,我们只需要像下面一样执行即可:

当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行:

ZRANGE user_scores 0 10 WITHSCORES

Agora Games就是一个很好的例子,用Ruby实现的,它的排行榜就是使用Redis来存储数据的,你可以在这里看到。

6、发布/订阅

最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!(不,这是真的,你可以去核实)。

Redis提供的所有特性中,我感觉这个是喜欢的人最少的一个,虽然它为用户提供如果此多功能。

 

 

五种数据类型的分析

https://blog.csdn.net/xlgen157387/article/details/60958657

猜你喜欢

转载自blog.csdn.net/jianchilu/article/details/83047005
今日推荐