Redis学习必备知识

2023-05-04 20:11:20 浏览数 (1)

本节中,我们将会了解一些Redis的由来、使用场景、特性。

Redis的含义

REmote DIctionary Server(Redis) 本义是远程字典服务器,是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets)有序集合(sorted sets)等类型。

Redis使用场景

Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过多种数据类型的键值来适应不同场景下缓存与存储的需求。 Redis用户有的将它用作数据库,有的用作消息总线,也有的用来做cache

Redis特性

国内如新浪微博、街旁网和知乎以及大大小小的互联网初创公司,国外如GitHub、StackOverflow、Flickr、暴雪和Instagram,都在使用Redis。那么,Redis何以如此之富有魅力呢?

  • 存储结构  Redis以字典结构存储数据,允许其他应用通过TCP协议连接读取字典中的内容。Redis还可以对集合类型的数据进行如交集、并集这样的集合操作。比如在SQL中,你是否曾经为找到“”同时属于A领域和B领域但又不属于C领域和D领域的某些技能“”的实现性能不高且繁杂而哀叹过呢?
  • 内存与持久化  Redis数据主要存储在内存中。因此Redis性能相比于其他基于硬盘存储的数据库具有非常明显的优势。Redis还提供了持久化功能,你可以将内存中的数据异步写入到磁盘中,同时不影响继续提供服务。
  • 功能丰富  Redis虽然是定位于数据库开发的,但是由于其功能的丰富,越来越多的人将其用作缓存、消息队列来使用。
  • Redis可以设置键生存时间  Time To Live,设置生存时间后,如果到期,会自动删除该键。这一功能可以错位缓存系统来使用。在某个场景中:一个程序将今天要发送的短信写入某个键,另外一个程序需要读取并发送到用户手机,由于某种原因第二个程序执行较慢(生产中严禁效率过低)导致今天的短信没有发送完造成数据积压,这时可以使用TTL设置过期时间,今天的短信过了零点就全部删除,第二天不再发送。
  • Redis可以设置占用内存空间  作为缓存系统,Redis还有一大好处就是可以限定数据占用的最大内存空间,可以制定规则,当数据量超过某一容量时,按照规则删除不需要的键值。
  • Redis与队列 Redis的list类型键可以用来实现队列,并且支持阻塞式读取,Redis还支持“”发布/订阅“”模式,关于此内容后面学习内容中会详细讲解到。
  • Redis简介稳定  没有什么比一个简单易上手的东西更吸引人的了,Redis存储结构与交互操作十分简单。我们使用Redis命令就和RDBMS中使用SQL是一样的,举一个例子:找到学号为1的学生的名字,SQL(MySQL):SELECT name FROM student WHERE id = 1 LIMIT 1 ,相对应的Redis读取键名为student:1的散列键类型的name字段:HGET student:1 name。两相比较,Redis更加简便易于操作。Redis命令常用的就二十多种,后面我们都会用到。

本节内容仅是简单地介绍了Redis,具体操作以及业务场景中的使用,我们在后面会了解到。

0 人点赞