前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 安装简单吗, 裸奔无遮挡的多

Redis 安装简单吗, 裸奔无遮挡的多

作者头像
AustinDatabases
发布2020-02-21 11:50:55
4850
发布2020-02-21 11:50:55
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

Good friends support each other after they have been humiliated, create friends pretend nothing happened in the first place.

___________________________________________________________________________

Redis 作为NOSQL 的数据库的一员,安装相对其他数据库要简单的多,但实际上部分REDIS 的安装不是很规范, 比较随意,所以这期说说REDIS 的安装的问题。以下都是开发人员经常出现安装的问题

问题1 安装REDIS 使用 root 账号作为启动 REDIS 的LINUX 账号

在安装ORACLE 数据库的时候,大家都知道使用ORACLE 或非ROOT 账号作为ORACLE 数据库的 LINUX ACCOUNT,其他在LINUX 下安装的数据库也是这样,REDIS 也不例外,所以使用 ROOT 作为LINUX 下REDIS 启动数据库的账号是不妥的。

每种系统使用单独的用户进行运行,主要是防止运行的系统拥有ROOT 的权限,这样如果有漏洞或者修改某些系统信息,则不容易被发现,如果采用非ROOT 账号,如果有多个系统在LINUX 上运行,增加了隔离性和安全性。另外针对某些配置,可以针对某个用户进行设置,而不是整体。例如

/etc/security/limits.conf

中的设置,你可以单独针对某个用户来进行,而不是 * 的方式。另外不同的账号可以设置不同的 profile 针对每个应用都有自己的变量环境,而不是所有的应用都有一个变量环境。

所以安装REDIS 需要给redis 设置独立的账号。

问题2 进行make 的时候,会报

/bin/sh: cc: command not found

问题是因为没有安装 gcc 或者版本较低的问题

请直接 yum -y install gcc

问题 3 在安装完 gcc 后,make 继续会报错

需要进入 deps 目录后 执行下面的命令

make hiredis lua jemalloc

cd linenoise && make

这里主要的问题是在构建Redis时,通过设置MALLOC环境变量来选择非默认的内存分配器。默认情况下,Redis是针对libc malloc编译和链接的,jemalloc是Linux系统上的默认值。选择这个默认值是因为jemalloc被证明比libc malloc有更少的碎片问题。

当然你也可以使用 make MALLOC=libc 解决不想使用 jemalloc 的问题

在make 结束后,可以将REDIS 安装到指定的目录中

sudo make PREFIX=/usr/local/redis install

在编译的时候,可能还会报错,原因是你的安装的目录会不会是ROOT 的目录权限,而不是redis 的权限。

请修改相关的权限

然后将redis 的配置文件拷贝到 /etc/目录下即可

问题 3 配置问题的问题,, 配置redis 时没有密码

如果说安装REDIS 中重要的问题,其实就是配置文件,而部分REDIS 在某些使用环境中没有密码,直接进入这也是事实,如同去年MONGODB 泄露数据一样,搞得好像是MONGODB 本身的问题,其实根本就是没有设置最基本的密码,然后让MONGODB 背锅。出现这样的事情大概率是,单位没有人管理数据库,或者管理数据库的不认为 MongoDB REDIS 属于数据库,而属于开发人员管理,这样的情况下,开发人员终究不是运维,两者对工具的使用的出发点不同,造成开发人员是功能能用就OK ,其他的无关, 而运维人员是你的工具必须符合标准规范,至于在应用上好用不好用,那我不管。

所以双方的出发点不同,导致要不性能不好,要不安全不到位,所以大型的单位都有专人管理,并且研究其安全性和性能,将两方的需求融合,避免出现问题。

Redis 如果是单位的开发来搭建,那大概率是不会注意配置文件,尤其是可能根本就没有密码,下面说说redis 的配置文件中的一些关键信息

includes

modules

network

general

snapshotting

1 监听地址,默认redis 是只监听自身的地址 127.0.0.1 ,那在实际应用中,是必须要进行配置的,否则远程的连接如何连接到 redis 中

所以需要绑定地址,redis是可以绑定多个地址的 空格来分割

2 启动redis ,启动redis 直接运行 redis-server /etc/redis.conf 就可以直接运行

但这时如果关闭redis ,会有如下问题

无法通过ctrl + c 来关闭redis 的原因是,redis 必须将当前的数据刷入到 RDB文件,RDB持久性以指定的时间间隔执行数据集的时间点快照。

而目前无法将rdb文件刷入,因为没有权限。所以需要指定一个redis 账户可以使用的数据目录,在建立一个redis 账户具有写入权限的目录后,在配置文件中更新 dir 后的信息,为目录信息, 再次启动redis 就不会出现redis 无法关闭的问题。

另外一般来说应用程序都需要,在后台运行,所以下图位置一定要设置为 yes而不是no

设置密码在配置文件中设置,重新启动redis 在登录到 redis-cli

config get requirepass

启动后,可以看到当前的密码已经生效, 最后需要设置日志

最后需要设置日志,任何系统的是需要日志来排查系统的问题,所以redis 也不例外。设置完毕后需要从新启动。

所以单机的REDIS 的安装还是要注意一些事情,当然上面的额内容也不完整。但至少让REDIS 穿上了衣服,不设置密码,无日志,不写入日志,那真的会着凉的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档