Redis 的一些概念
什么是 Redis?
Redis 是一个开源(BSD 许可)内存远程数据结构存储(数据库),提供高性能、复制和独特的数据模型。Redis 的完整形式是 Remote Directory Server。此外,我们可以以多种形式使用它。Redis 提供数据结构,例如字符串、散列、列表、集合、具有范围查询的排序集合、位图、超日志、地理空间索引和流。
您可以从大多数编程语言中使用 Redis 。Redis 是用 ANSI C 编写的,可以在大多数 POSIX 系统(如 Linux、*BSD 和 OS X)中运行,无需外部依赖。Linux 和 OS X 是 Redis 开发和测试最多的两个操作系统。
Redis 是做什么用的?
我们可以通过以下形式使用 Redis。
1)内存数据库:作为内存数据库,我们会得到一些空的内存来执行数据库操作。此外,它充当 No-SQL 数据库,没有表、没有序列、没有连接的概念。我们可以以 String、Hash Operations***、List、Set 等形式存储数据。将提供内置服务。2)缓存:我们也可以使用 Redis 作为缓存来提高我们的应用性能。3) Message Broker(MQ):Redis 的另一个用途是作为 Message Broker。
在实时应用程序中,与数据库和消息代理相比,Redis 作为缓存管理器更受欢迎。作为缓存管理器,它减少了网络调用并提高了应用程序的性能。
什么是 Redis 缓存?
Redis Cache 只不过是 Redis 提供的一种缓存管理功能。Redis 通常用作缓存,将重复访问的数据存储在内存中,以便用户感受到应用程序更好的性能。Redis 缓存提供了各种功能,例如您希望保留数据多长时间、首先删除哪些数据,以及其他一些出色的缓存模型。
在你的应用程序中使用 Redis Cache 有什么好处?
与任何其他缓存技术一样,Redis 缓存也最大限度地减少了应用程序进行的网络调用次数,从而提高了整个应用程序的性能。从应用程序到数据库的一个请求类似于一个网络调用。一旦我们在应用程序中应用任何缓存机制,我们也可以实现更好的扩展,因为在这种情况下数据库可以服务更多的调用。
Redis Cache 在应用程序中是如何工作的?
当我们通过应用程序执行数据库检索操作时,Redis 缓存将结果存储在它的缓存中。此外,当我们执行相同的检索操作时,它会从缓存本身返回结果并忽略对数据库的第二次调用。同样,当我们执行数据库更新操作时,Redis Cache 也会更新其缓存中的结果。不用说,对于删除操作,它也会相应地从缓存中删除数据。这样,就没有机会获得不正确的数据。
什么是 Redis 数据库?
Redis 数据库是一个持久存在于磁盘上的内存数据库。就是说我们在使用 Redis Database 的时候,会在磁盘上占用一块内存来作为 Database 使用。数据模型是键值,但支持多种值,如字符串、列表、集合、排序集、哈希、流、HyperLogLogs、位图等。
什么是 Redis 服务器?
Redis 的完整形式是 RE mote DI ctionary Server。当我们以数据库、缓存或 Message Broker 等任何形式使用 Redis 时,我们需要在我们的系统中下载一个 Redis Server。业内人士直接称它为 Redis Server。
如何下载 Redis 服务器?
1) 访问以下任何链接以在 Windows 上下载 Redis 下载 Redis 服务器 :版本 3.2.100下载 Redis 服务器 :版本 5.0.102) 单击 Redis-x64-5.0.10.zip 并将其解压缩到文件夹 3)在文件夹“Redis-x64-5.0.10”下,您将找到 redis-server.exe4) 要启动 Redis Server,请双击“redis-server.exe”以启动 Redis Server
在应用程序中启用 Redis 缓存的重要注解是什么?
通常,我们应用了四个重要的注释来在我们的应用程序中实现 Redis 缓存功能。它们如下:
@EnableCaching
我们在应用程序的主类(启动类)中应用此注解,以便告诉 Spring Container 我们需要在应用程序中使用缓存功能。
@Cacheable
@Cacheable 用于从数据库中获取(检索)数据到应用程序并存储在 Redis 缓存中。我们将它应用于从数据库获取(检索)数据的方法。@Cacheable 需要在缓存中添加或更新数据的方法的返回值。
@Cacheable 注解让我们可以使用属性。例如,我们可以通过使用 value 或 cacheNames 属性来提供缓存名称。我们还可以定义唯一标识缓存中每个条目的注释的关键属性。如果我们不指定密钥,Spring 会利用其默认机制来创建密钥。此外,我们还可以使用条件属性在注释中应用条件。
@CachePut
我们使用 @CachePut 来更新 Redis 缓存中的数据,而 DB 中有任何数据更新。我们将其应用于在 DB 中进行修改的方法。
@CacheEvict
我们使用 @CacheEvict 来删除 Redis 缓存中的数据,同时删除数据库中的任何数据。我们将它应用于从数据库中删除数据的方法。它可以与 void 方法一起使用。
版权声明: 本文为 InfoQ 作者【饱饱巴士】的原创文章。
原文链接:【http://xie.infoq.cn/article/121c00376361503bdd1ce1343】。文章转载请联系作者。
评论