redis和php快速数据存储入门

了解如何使用流行的开源redis数据存储引擎提高在线软件的速度,允许每秒3200万个查询的极快速度。...

流行的Redis存储引擎是任何软件开发人员都必须拥有的优秀工具。内存存储引擎允许极快的数据存储和检索,高达每秒3200万个查询,使它成为任何主要数据库引擎的主要补充。

Create a database with Redis

让我们深入了解,学习如何加快我们的在线运营。

redis:正反两面

Redis最大的好处是它是一个纯粹的内存数据存储,这意味着它的速度非常快,因为数据库存储在RAM中,因此不需要对硬盘进行文件I/O操作。

其他额外的好处是它的简单性,通过Redis cluster支持集群,再加上它对8种不同数据类型的支持,为您提供了存储和管理所需数据的灵活性。

然而,它最大的缺点也是它纯粹是内存中的数据存储,因此有大小限制。这取决于您的服务器基础设施,但为了本文和简单起见,您典型的Redis数据库最多只能容纳2-4GB的数据。

这意味着Redis是用来补充mySQL、PostgreSQL和MongoDB等常用的数据库引擎,而不是用来替代。Redis的主要用途包括缓存、将在短时间内过期的临时/最近的数据,或者频繁访问的小块数据。

如何安装redis

假设您正在运行Ubuntu或任何包含apt get命令的Linux发行版,要安装Redis,只需在终端中运行以下命令:

sudo apt-get install redis-server

接下来,检查以确保Redis已成功安装。在终端中,运行以下命令:

redis-cli --version

这将打印您正在运行的Redis版本,如果是这样,请运行以下命令连接到Redis:

redis-cli

这将在终端中为您提供一个非标准的Redis提示,如下所示:

127.0.0.1:6379>

字符串命令

Redis中的每个条目都由一个键标识,该键可以是您想要的任何非空白字符串。字符串只包含一个值,例如,在Redis提示符下运行以下命令,将一个值设置为几个键。

127.0.0.1:6379> set full_name "John Doe"127.0.0.1:6379> set units 5

现在可以使用keys命令列出Redis数据库中当前的所有键。

127.0.0.1:6379> keys *

这将导致显示您以前设置的两个键,全名和单位。使用get命令可以看到这些键的值。

127.0.0.1:6379> get full_name"John Doe"127.0.0.1:6379> get units5

使用del命令可以很容易地删除键。

127.0.0.1:6379> del full_name

也可以使用hincrby命令快速增加整数。下面将“单位”键从5增加到7。

127.0.0.1:6379> incrby units 2

列出命令

Redis中的列表是具有特定顺序的一维数组,允许列表中不同位置的重复项。可以使用lpush和rpush命令将项添加到列表的左侧或右侧。

127.0.0.1:6379> lpush colors blue127.0.0.1:6379> rpush colors red yellow green

从上面的示例可以看出,您可以在一个命令中将多个项推送到一个列表中。我们现在可以使用lrange命令查看列表中的所有项。

127.0.0.1:6379> lrange colors 0 -1

命令末尾有两个整数,第一个整数定义列表中要开始的位置,第二个整数是要返回的项数,其中-1表示所有项。上述命令的结果将是蓝色、红色、黄色、绿色。

您还可以使用lpop和rpop命令从列表的两端删除项目。

127.0.0.1:6379> lpop colorsblue127.0.0.1:6379> rpop colorsgreen

您还可以使用llen命令获取列表中的元素数。

127.0.0.1:6379> llen colors(integer) 2

最后,可以通过lrem命令从列表中删除元素。

127.0.0.1:6379> lrem colors 1 green(integer) 1

lrem命令以列表名开始,后跟要删除的出现次数和要删除的元素的名称。它将返回找到并从列表中删除的出现次数。

哈希命令

Redis中最流行的数据类型之一是hash,它允许您在一个条目中存储多个键值对。键不必存在,您可以随时使用hset命令定义键值对。

127.0.0.1:6379> hset user:581 full_name "Jane Doe"127.0.0.1:6379> hset user:581 points 500

还可以使用hmset命令在单个命令中定义哈希的多个键值对。

127.0.0.1:6379> hmset user:581 email [email protected] gender F

由密钥标识的哈希用户:现在是581总共有四个键值对,所有这些都可以通过hgetall命令轻松检索。

127.0.0.1:6379> hgetall user:5811) "full_name"2) "Jane Doe"3) "points"4) "500"5) "email"6) "[email protected]"7) "gender"8) "F"

还可以使用get命令获取散列中单个键值对的值。

127.0.0.1:6379> hget user:581 email"[email protected]"

对于散列中的任何整数,可以使用代码hincrby命令按指定的量递增。

127.0.0.1:6379> hincrby user:581 points 20(integer) 520

散列中的points键的值现在已经增加了20到520。可以使用hdel命令删除散列中的单个键值对。

127.0.0.1:6379> hdel user:581 gender

或者,也可以使用del命令删除包含所有键值对的哈希。

127.0.0.1:6379> del user:581

过期的redis密钥

Redis的另一个优秀特性是能够在定义的秒数后使用expire命令自动使密钥过期。请注意,您只能使完整密钥过期,而不能使列表或哈希中的单个元素过期。例如:

127.0.0.1:6379> expire full_name 10

这会将您在“字符串”部分中创建的全名密钥的过期时间设置为10秒。运行上述命令后,请等待10秒钟,然后再次尝试检索密钥的值。

127.0.0.1:6379> get full_name(nil)

正如预期的那样,密钥现在已经过期,因此我们得到null作为结果。

用php连接redis

现在,您已经了解了如何使用Redis存储和检索数据的基本知识,是时候将其连接到您的软件中了。所有编程语言都有用于Redis的模块/扩展,但对于本例,我们将使用PHP。

首先必须安装PHP Redis扩展,因为默认情况下没有安装它。在终端中,运行命令。

sudo apt-get install php-redis

安装后,请确保重新启动PHP fpm,以便正确加载扩展。下面是一些连接到Redis并与之接口的PHP代码。

<?php// Connect to redis$conn = new redis();try { $conn->connect('127.0.0.1', 6379, 5);} catch (RedisException $e) { die("Unable to connect to redis");}// Set string$conn->set('country', 'Canada');// Get string$value = $conn->get('country');echo "Country is: $value";// Define a profile$profile = [ 'username' => 'mike', 'full_name' => 'Mike Smith', 'email' => '[email protected]', 'country' => 'Australia'];// Create a hash$conn->hmset('user:188', $profile);// Get all values of the profile hash$values = $conn->hgetall('user:188');print_r($values);// Get only the e-mail address$email = $conn->hget('user:188', 'email');echo "E-mail is: $email";// Expire the hash in 15 seconds$conn->expire('user:188', 15);

上面的示例代码应该非常直接。它首先以5秒的超时时间连接到Redis,然后继续设置并获取字符串和散列。所有Redis命令都可以通过OOP直接从Redis对象调用来执行,如上所示。

你在路上!

恭喜,您已经学习了如何通过Redis存储引擎以极快的速度存储和检索数据的基础知识,包括如何使用PHP连接到Redis并与之交互。

请注意,本文只介绍了最基本的内容,文档的Redis数据类型页面是继续探索Redis及其所有功能的好地方。

  • 发表于 2021-03-28 11:57
  • 阅读 ( 318 )
  • 分类:IT

你可能感兴趣的文章

得到(get)和php中的post方法(post method in php)的区别

...t方法(get method in php)? ***站能够存储、更新、检索和删除数据库中的数据。表单是包含供用户填写数据的字段的文档。这些表单数据将存储到数据库中。 使用GET方法的表单信息对每个人都是可见的。换句话说,所有变量名和值...

  • 发布于 2020-10-17 03:43
  • 阅读 ( 189 )

菲律宾比索(php)和python(python)的区别

...本语言。PHP代码可以很容易地嵌入HTML代码。PHP中有各种数据类型,如整数、布尔值、Null、字符串、数组和对象。PHP可用于文件操作,如打开、关闭、读取和写入文件。可以处理数据收集和发送电子邮件的表格。PHP支持HTTP cookies...

  • 发布于 2020-10-18 23:19
  • 阅读 ( 272 )

内存缓存(memcached)和雷迪斯(redis)的区别

...,因此对于数据库负载较高的网站来说,它是非常高效和快速的。 在Memcached中,有存储命令、检索命令和统计命令。有些存储命令是set、add、append等。“set”命令用于为新的或现有的键设置一个新值。“add”命令用于为新键设...

  • 发布于 2020-10-19 23:25
  • 阅读 ( 156 )

您需要了解的有关内容管理系统的所有信息

...将PHP作为一个模块。因此,建立世界领先的网络服务器是快速和简单的。 ...

  • 发布于 2021-03-13 12:08
  • 阅读 ( 208 )

使用xampp在windows上免费托管和编辑网站

... 然后是快速和完全控制的问题。使用XAMPP创建和编辑网站,您可以随意更改网站的大小。也就是说,权力越大,责任越大。您也更容易丢失站点,尤其是在不创建备份的情况下。 ...

  • 发布于 2021-03-14 07:36
  • 阅读 ( 243 )

7所有网站开发人员都应该知道的编程技巧

...pt创建具有增强交互的web应用程序的方法。Ajax在后台下载数据(异步),并允许页面自动更新,而不需要输入刷新和等待周期。Gmail、Google地图和Google文档都在大量使用这项技术。您可以在Mozilla开发人员的网络上了解更多信息。...

  • 发布于 2021-03-15 10:16
  • 阅读 ( 240 )

如何在raspberry pi上托管wordpress站点

...的用户名和密码。单击InstallWordPress,然后等待WordPress(快速)设置。 ...

  • 发布于 2021-03-21 11:33
  • 阅读 ( 252 )

为什么kinsta管理的wordpress主机对每个人都很好

...加载媒体尽可能快,由于KeyCDN集成。同时,页面缓存可以快速交付内容。这与Kinsta自己的缓存插件相结合,以提高速度和对缓存的控制。 ...

  • 发布于 2021-03-22 09:54
  • 阅读 ( 243 )

为下一个项目考虑6个数据库引擎

...优点是它庞大而活跃的社区,几乎没有文档限制,允许您快速找到可能遇到的任何问题的答案。 ...

  • 发布于 2021-03-28 09:56
  • 阅读 ( 265 )

如何构建自己的usenet索引器

...您可能会遇到错误,只需从终端运行提供的chmod命令作为快速修复。 恭喜你进入了管理员的聚会。 在我给你发邮件之前,你需要做的一件事就是改变nzb分类的工作方式,点击右上角你的名字。 然后单击编辑链接。 现在取消...

  • 发布于 2021-04-12 07:01
  • 阅读 ( 190 )
脑袋放空2013
脑袋放空2013

0 篇文章

相关推荐