“Redis 初体验”
目的的一种选择是:目标。
体验最新的应用程序,并与应用开发者交谈。
目标 (mù
当我被 MORI 先生问到”内存处理是什么样的?”时,我不会感到困扰。
我在 RDS 上创建不擅长的排名。
成果图像
构建用于内存处理所需的环境
构建一个用于测试Redis排序功能的应用程序
使用方法
[销售专用]构建 PoC 环境与客户共同培育
如果服务器工程师或程序员需要补充缺失的地方,尤其是需要补充涉及GCP等特定服务规格的服务器工程师角色会很有帮助。
您可以学习到面向程序员的内存处理的实质。
通过使用php的库,你可以学习到关于在内存中读写和写入到磁盘的实现方式。
sudo cat redis.conf
通过查看下方的源代码,我们来确认关于向redis中添加和提取数据的方法。
https://raw.githubusercontent.com/HaHatake/tesstRedis/master/rankingtest.php
[针对服务器工程师] 可以学习 GCP
通过完成下面的任务,您可以实践使用GCP的IaaS方式。此外,您还可以进行服务器环境设置(操作系统和中间件[如php和redis]),以及编写简单的脚本(例如建立排名网站)。特别要注意的是,要掌握在提示中提到的redis的设置和特性。参考链接:http://www.denet.ad.jp/technology/2017/11/redis-centos7.html
这个任务

用中文描述以下内容,仅提供一种选项:
yum的更新
sudo yum -y update
安装 Redis
sudo yum -y install redis –enablerepo=epel
※如果没有 epel 存储库,请单独添加。GCP 上的默认 CentOS7 在截至2018年7月3日的注册已完成。
安装PHP
使用sudo yum -y install php
安装php-redis
使用sudo yum -y install php-pecl-redis –enablerepo=epel命令
首先,确定位置
php -r “echo phpinfo();” | grep “php.ini”
我的情况下,
/php.ini 文件
创建备份文件夹和ini拷贝文件
sudo mkdir /usr/backup
sudo cp -p /etc/php.ini /usr/backup/php.ini.org
创建备份文件夹和ini拷贝文件
使用sudo命令创建/usr/backup文件夹,并将/etc/php.ini拷贝到/usr/backup/php.ini.org
进行 PHP 中使用 php-redis 的设置
请参考以下网站
https://github.com/phpredis/phpredis/blob/master/README.markdown
使用 sudo 命令打开 /etc/php.ini 文件
在最后一行添加以下内容
extension=redis.so
如果不了解如何使用 vi 命令,请单独搜索。
整个流程如下:
a > 粘贴 > 按下 esc 键 > 输入 :wq
确认Redis
php -m | grep redis
如果输出如上所示,则表示通过。
将数据输入到Redis中并进行排序后输出。
请参考下方网站:
cd /var/www/html/
sudo curl https://raw.githubusercontent.com/HaHatake/tesstRedis/master/rankingtest.php
切换到/var/www/html/目录下
以管理员权限运行curl命令,下载https://raw.githubusercontent.com/HaHatake/tesstRedis/master/rankingtest.php文件
运行rankingtest.php文件,使用php -f。
确认一下。
输入是通过随机分数进行的。
输出是由redis排序的分数。
这是一个日语词汇,其中包含了与正文无关的内容。
在中国进行Redis安装。
请参考以下网站:
https://redis.io/download
cd /usr/local/src/
sudo wget http://download.redis.io/releases/redis-4.0.10.tar.gz
sudo tar xzf redis-4.0.10.tar.gz
cd redis-4.0.10
sudo apt install make
确认配置文件
sudo cat redis.conf
在150行附近有一个非常独特的选项…
默认设置如下:
– 至少当有一个键发生更改时,900秒后进行快照
– 至少当有十个键更改时,300秒后进行快照
– 至少当有一万个键更改时,60秒后进行快照
存900,第一次
存300,共10次
存60,共10000次
在509号线附近,无论何时进行数据更新,都必须始终保存在磁盘上,但这样会导致速度变慢。
只追加,不覆盖。
为了从源代码进行编译,需要准备好编译环境。
使用以下命令进行操作:
sudo apt-get update
sudo apt-get -y install gcc
sudo service apparmor stop
获取Redis源代码,并进行编译
sudo wget http://download.redis.io/releases/redis-4.0.10.tar.gz
cd /redis-4.0.10
make test
运行Redis
src/redis-server
当Redis的ASCII艺术出现时,就表示完成了。
使用Ctrl+C键来中止。
故障排除
在Redis进行编译时发生错误。
进入 src 目录并执行 make install 命令。
make[1]: 进入目录 ‘/usr/local/src/redis-4.0.10/src’
正在编译 adlist.o
/bin/sh: 1: cc: 找不到命令
Makefile:228: 目标 ‘adlist.o’ 的规则失败
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录 ‘/usr/local/src/redis-4.0.10/src’
Makefile:9: 目标 ‘install’ 的规则失败
make: *** [install] 错误 2
sudo apt-get update
sudo apt-get -y install gcc
sudo service apparmor stop
sudo wget http://download.redis.io/releases/redis-4.0.10.tar.gz
cd /redis-4.0.10
make test
请运行以下命令:
sudo apt-get update
sudo apt-get -y install gcc
sudo service apparmor stop
sudo wget http://download.redis.io/releases/redis-4.0.10.tar.gz
cd /redis-4.0.10
make test
进入src目录并执行make test命令
make[1]: 进入目录’/home/h1d34h4t/redis-4.0.10/src’
你需要tcl 8.5或更高版本才能运行Redis测试
Makefile:242: 目标’test’执行失败
make[1]: *** [test] 错误1
make[1]: 离开目录’/home/h1d34h4t/redis-4.0.10/src’
Makefile:6: 目标’test’执行失败
make: *** [test] 错误2
以管理员身份安装tcl:sudo apt-get -y install tcl
运行测试:make test
(请耐心等待约10分钟)
\o/ 所有测试通过无错误!清理:可能需要花一些时间…好的
运行 src/redis-server
1301:C 03 Jul 00:28:31.985 # oO0OoO0OoO0Oo 正在启动 Redis oO0OoO0OoO0Oo
1301:C 03 Jul 00:28:31.985 # Redis 版本=4.0.10,位数=64,提交=00000000,修改=0,进程ID=1301,刚刚启动
1301:C 03 Jul 00:28:31.985 # 警告:未指定配置文件,使用默认配置。如果要指定配置文件,请使用 redis-server /path/to/redis.conf
1301:M 03 Jul 00:28:31.986 * 增加最大打开文件数量至10032(原本设置为1024)。
.
.-“_ ”-._
.-`. `. ”-._ Redis 4.0.10 (00000000/0) 64 位
.-.-.\/ _.,_ ”-._
( ‘ , .-` | `, ) 运行在独立模式下
|`-._`-…-` __…-.-.|’_.-‘| 端口:6379
|-. ._ / _.-‘ | 进程ID:1301
-._ -._-./ .-‘ _.-‘
|`-.-._-..-‘ .-‘.-‘|
| -._-._ .-‘.-‘ | http://redis.io
-._-._`-..-‘.-‘ _.-‘
|`-.-._-..-‘ .-‘.-‘|
| -._-._ .-‘.-‘ |
-._-._`-..-‘.-‘ _.-‘
`-. -.__.-‘ _.-‘
-._ .-‘
`-._.-‘
1301:M 03 七月 00:28:31.987 # 警告:无法强制要求511的TCP排队设置,因为/proc/sys/net/core/somaxconn被设置为较低的128。
1301:M 03 七月 00:28:31.987 # 服务器已初始化
1301:M 03 七月 00:28:31.987 # 警告:overcommit_memory被设置为0!在内存不足的情况下,后台保存可能会失败。要解决此问题,在/etc/sysctl.conf中添加’vm.overcommit_memory = 1’,然后重新启动或运行命令’sysctl vm.overcommit_memory = 1’使其生效。
1301:M 03 七月 00:28:31.987 # 警告:您的内核启用了Transparent Huge Pages (THP)支持。这会导致Redis出现延迟和内存使用问题。要解决此问题,请以root身份运行命令’echo never > /sys/kernel/mm/transparent_hugepage/enabled’,并将其添加到/etc/rc.local以在重启后保留设置。在禁用THP后,必须重新启动Redis。
1301:M 03 七月 00:28:31.988 * 数据库从磁盘加载成功:0.000 秒
1301:M 03 七月 00:28:31.988 * 准备接受连接
有一些警告,但已经解决了。
有关警告的内容,请参考以下链接:
http://www.denet.ad.jp/technology/2017/11/redis-centos7.html
・虽然 somaxconn 值低于 511,但没问题吗?问题是,作为操作系统级别连接队列的最大值,会影响所有使用 TCP 套接字进行监听的服务。默认情况下,redis 会尝试在 511 上进行监听,所以 somaxconn 值设为 128 很少?谢谢你的关心。但这只是测试,所以不要担心,忽略吧。
・overcommit_memory 的设置应该是1 而不是0。请参考以下链接:https://qiita.com/h-imaoka/items/9c0dc9e07bf39175b7ea。将设置为”1″ 将不会控制超额承诺。因为我还想与其他应用程序共存,所以这次我会忽略警告。
透明大页(THP)支持已启用,但禁用更快。对于几GB的服务器来说,THP开启会变慢。好烦!这台服务器只有1G而已!忽略它。