一、引言

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

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

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

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

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

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

一、多数据库

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

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

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,导入需要的包: