这就像一个具有钥匙值对的巨型JSON对象
因此,当您使用关系数据库时,键值基本上意味着什么,您必须定义适当的模式,必须定义特定键是否是主要键,并且必须定义特定列不接受某个列零值,但是REDIS并非如此,它的一个完全模式较少数据库,它以键值的形式存储信息,其中键是字符串,并且值可能是任何数字,blob,video等。
。它是内存数据库中的一个,它完全取决于主内存,从而带出以下优势
- 它使数据检索快速
- 潜伏期在子米利秒
- 最重要的是我们可以缓存数据
唯一的缺点是在服务器故障时可能会发生数据丢失。
REDIS是一个单线程系统,人们可能会认为单线数据库可能不如多线程数据库那样有效,但这不是一个单线程系统仍然扩展,因为一个人可以按照一个人想要的数量旋转。
可选的耐用性
有两种方法可以持续redis中的数据,并且两者都在背景中异步发生
-
日记
因此,日记对键值对显然会将其写入内存,但在同一时间将其写入磁盘内存。
同一时间。 -
快照
它坚持数据的另一种方式是拍摄快照,即在一个时间点复制数据并将其存储在磁盘中。假设如果系统故障发生在数据的交易之间,则将导致数据丢失,只有该数据将存储在磁盘中,如果启用了快照,该数据较早地被弹出。
。
让我移至编码部分,我将使用Docker显示命令,以便可以快速使用REDIS数据库开始。
- 首先将在Docker上旋转Redis实例
sudo docker run --name redisdatabase -p 6379:6379 redis
- 现在进入Redis-CLI运行以下命令
sudo docker exec -it redisdatabase redis-cli
- 现在是如何设置钥匙值对的最困难的部分
set name "devyank"
这里的名称请参考键,devyank指的是值
- 因此,我们已经设置了键值对现在问题,即如何获得非常简单的值,我们只需要编写以下命令即可获取值
get name
- 我们还可以为键值对设置到期时间
set hobby "running" EX 10
在上面的示例中,键值对的到期时间为10秒,如果您将在10秒后运行get命令,您将获得以下结果,即nil
- 还有一个命令可以检查数据库中是否存在键
exists key
因此,如果存在键,它将返回1个整数值,如果键不存在,它将返回0个整数值。
- 还有一个命令可以从数据库中检索所有键
keys *
Pub-Sub模型
- 因此,在redis中,即使不存在频道,也可以订阅频道,然后在频道中是否将任何视频添加到频道中,您会收到通知的。
subscribe devyankvideos
因此,在上面的示例中,我已经订阅了一个不存在的devyankvideos
- 现在我将在此频道中发布视频,并将看到我将获得的结果
publish devyankvideos "Redis tutorial"