Redis(Remote Dictionary Server)是一个开源的内存数据库,它提供了一个高效的键值存储系统,并支持多种数据结构,如字符串、列表、集合、哈希表等。由意大利程序员 Salvatore Sanfilippo 开发并于 2009 年首次发布,Redis 迅速成为业界热门的 NoSQL 数据库之一。作为一款功能丰富且性能出色的数据库,Redis 在许多方面都表现出色。首先,Redis 将数据存储在内存中,因此具有极快的读写速度,适合用于需要快速响应的场景;其次,Redis 支持持久化功能,可以将数据定期保存到硬盘上,保证数据的安全性;此外,Redis 还提供了丰富的数据结构和强大的操作命令,使得开发者能够轻松实现各种复杂的功能。
除此之外,Redis 还被广泛应用于缓存、会话存储、消息队列等场景,在互联网行业得到了广泛的应用。其简单易用的特点,使得开发者可以快速上手,提高开发效率。
在本篇博客中,我们将深入探讨 Redis 的原理、常用数据结构、操作命令以及一些典型的应用场景,希望能够帮助读者更好地了解和应用 Redis,提升系统性能和开发效率.
Redis的特性:
高性能, 高可用,高拓展
Redis为什么性能高:
Redis的底层其实就是一张全局哈希表,当它存储数据的时候,他会把数据存储到哈希表中
1.存储过程:
拿到key,计算出哈希值,然后将这个哈希值 模 数组的长度, 得到的结果就是存储元素的下标位置。
这里很多小伙伴不太清楚哈希表的构造,我们直接上图,简单明了:
哈希表底层是一个数组,每个数组的下标处,有一个链表,比如说我们计算出的下标值为:4,那么就会将数据存储到 4下标处的链表中, get数据的时候 依然是先将key计算出哈希值,然后模数组的长度得到下标位置,然后找到相同的key,得到value值。
很多伙伴一看,是不是和Java的HashMap底层原理非常像呢。
Redis数据结构:
String类型:
应用场景:
String类型是我们最常用的,他其实什么都可以存。比如说存一个简单的字符串,存一个数字,存一个对象(将对象序列化),存一个集合(将集合序列化)等等