Redis 初探(9)——缓存问题

一、引言

咳咳,这一节内容应该早就放上博客的,一直忘记了,在写上一篇《详解布隆过滤器》时,谈到缓存问题,一看博客中竟然没有写过相关的,实在是不该,特此补上。

Redis 所存在的缓存问题也是大部分缓存所存在的问题,因此本文不单单特指于 Redis。这些问题包括缓存穿透、缓存雪崩、缓存击穿、缓存预热等等,相关文章网络上已经数不胜数了,说实话本文和它们没啥不同之处,只是为了记录,所以对于了解过的人基本就是废话了,谨慎阅读哦。

Redis 初探(8)——Redis 的实际应用

《Redis初探(7)——Jedis操纵集群》中,我们已经学会了搭建 Redis 集群,以及使用策略模式,在xml文件中灵活切换单机版和集群版。

本章将演示在宜立方商城项目中使用 Redis,项目地址:e3mall

Redis 初探(7)——Jedis 操纵集群

《Redis 初探(2)——Jedis 的使用》中,我们已经学会了Jedis操纵单机Redis的简单使用,本章将继续深入,介绍Jedis对集群的操纵。

Redis 初探(6)——Redis 集群

之前我们所学习的都是 Redis 的单机版,我们知道 Redis 之所以读取速度快是因为它是存储在内存中的。内存的容量是有限的,单台 Redis 会碰到性能瓶颈,这就需要使用 Redis集群(Redis-cluster)

Redis 初探(5)——Redis 的持久化

Redis 的高性能是由其将所有数据都存储在了内存中,需要使用时直接从内存调用即可。为了使 Redis 在重启之后仍然能保证数据不丢失,需要将数据从内存同步到内存中,这一过程就是持久化

Redis 支持两种持久化方式,一种是 RDB方式,一种是 AOF方式。可以单独使用其中一种或将两种结合使用。

  • RDB (默认) 在指定的时间间隔内将内存中的数据快照写入磁盘。

  • AOF 以日志的形式记录服务器处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。

Redis 初探(4)——Redis 的特性

一、多数据库

每一个 Redis 实例可以包括多个数据库,客户端可以指定连接某个 Redis 实例的某个数据库。一个Redis实例最多可以提供 16 个数据库,下标从 0 到 15,客户端默认连接第 0 号数据库

含义 方法
选择第 n 号数据库 select n
将当前库的 key 转移到第 n 号数据库 move key n

Redis 初探(3)——Redis 的数据类型

《Redis 初探(1)——Redis 的安装》中,我们说过,Redis支持以下五种数据类型,本章进行详解:

  • String类型
  • List类型
  • Set类型
  • SortedSet类型
  • Hash类型

Redis 初探(2)——Jedis 的使用

2.1 准备工作

首先我们在Linux中开启redis服务:

wxs@ubuntu:/usr/local/redis/src$ ./redis-server ../redis.conf 
wxs@ubuntu:/usr/local/redis/src$ ps auxc | grep redis
wxs        5278  0.0  0.4  51828  8408 ?        Ssl  20:12   0:00 redis-server

上一节中我们只是在Linux主机中简单的测试了下 Redis 的使用,但是那样并没有什么实际用处,我们可以在程序中去远程的访问 Redis。

我们以 Java 为例,想要在 Java 程序中使用 Redis,首先我们需要借助第三方库 jedis,导入需要的包: