设为首页 收藏本站
查看: 1043|回复: 0

[经验分享] Redis(二):Redis的安装及配置(1)---安装

[复制链接]

尚未签到

发表于 2018-11-5 09:01:58 | 显示全部楼层 |阅读模式
  网上有很多安装文档,但是写的比较粗略,有些问题也没有说明,比如内存分配器安装遇到错误,解决办法级别都是使用linux系统自带的libc来解决,并没有给出如何使用性能更好的jemalloc分配器,所以决定把一些我能想到的东西整理一下,同时也是为了初学者少走弯路。
  安装
  Redis安装非常方便,首先通过官网去下载最新版本,官网地址:http://redis.io/download
  Redis除了可以安装在Linux上还可以安装在Windows上,不过在Windows平台上的Redis并不是Redis官方支持的,它是由MicrosoftOpen Tech 小组开发并维护的。Redis并不依赖任何非标准函数库,也没有编译必须要添加的参数,安装非常简单。我们这里使用3.0版本。
  先安装一下基础环境:
DSC0000.jpg

  从这里下载:http://download.redis.io/releases/redis-3.0.7.tar.gz
DSC0001.jpg

  解压并测试所需条件,该命令是压缩包里自带的命令,提示需要安装tcl8.5以上版本
DSC0002.jpg

  安装tcl
DSC0003.jpg

  安装jemalloc分配器,这个分配器源码已经包含在Redis源码包里了,在dev目录里面,如下图:关于分配器我后面再做说明。
DSC0004.jpg

  安装方式如下:它会把下面这4项进行编译安装,这都是Redis所依赖的
DSC0005.jpg

  编译安装Redis
  这时候再去运行make就不会报错了。可以通过下面的命令来设置安装目录:
make PREFIX=/DIRECTORY install (如果你用了这个命令,那么后面就不需要执行make install了)  我这里使用默认的。
DSC0006.jpg

DSC0007.jpg

  运行makeinstall
DSC0008.jpg

  注意:如果你想安装在不同目录里,必须使用make PERFIX=/DIRECTORY install方式,如果这条命令后面没有跟install,而你想之后运行make install,那么单纯运行make不会出错,但是最后安装完成后你会发现依然是默认的目录(/usr/local/bin)而不是你自己指定的目录。
  安装后的程序及配置文件位置:
  安装后默认的Redis程序放在了/usr/local/bin下面,如下图:
DSC0009.jpg

  程序名称用途redis-serverRedis服务器的daemon启动程序redis-cli命令行工具,当然也可以使用telnet来操作数据库redis-benchmark性能测试工具,测试redis在当前系统以及硬件配置下的读写性能redis-check-aof用于修复出问题的AOF文件redis-check-dump用于修复出问题的dump.rdb文件redis-sentinel用户集群管理
  配置文件位置在源码包中,安装并不会复制配置文件,需要手动拷贝配置文件。操作如下:
  先在/etc/下面建立一个文件夹名称为redis,这也是为了便于管理
DSC00010.jpg

  这里要把配置文件改个名词,改成6379.conf,为什么呢?因为跟启动脚本里面的CONF这个变量的设置有关,它默认使用的是REDISPORT这个变量为配置文件名称,下一节就会看到。
DSC00011.jpg

  关于分配器
  本来想把分配器单独写一篇,后来觉得还是应该放在这里比较合适,这样可以保持一个连贯性。安装Redis经常会出现在分配器报错问题,网上的一般建议都直接使用Linux系统的libc分配器来解决,但是没有告诉如何使用性能更好的jemalloc分配器来安装,因为Redis程序本身不带内存管理机制,它是使用其他的内存分配器。
  查看压缩包目录下的README文档,如下图:
DSC00012.jpg

  Redis安装时使用的默认分配器为jemalloc,如果你的系统没有,那么安装Redis就会报错,如下图:
  提示说没有这个文件或者目录
DSC00013.jpg

  MALLOC是一个环境变量,如果有这个环境变量就会用这个变量去建立Redis,如果没有就需要在安装的时候指定这个参数。一般情况下系统是没有这个环境变量的。
  libc并不是Redis默认的分配器,默认的是jemalloc,因为这个分配器的性能比libc要好,主要反映在内存碎片率上(内存碎片太多,对纯内存数据的性能是有很大影响的)。Redis在编译的时候,先判断是否是否使用jemalloc(BSD提供的内存分配管理模块),如果都没有就会使用标准的libc中的内存管理函数,但使用标准的libc需要手动指定参数。
  如果不想使用jemalloc分配器,那么在安装时使用make MALLOC=libc 就可以解决上面那个报错。这也是网上常规的解决办法。如果想使用jemalloc那么就按照上面的操作步骤来安装。
  常用分配器:

  •   tcmalloc 谷歌的内存分配管理模块
  •   jemalloc BSD提供的管理模块
  •   libc Linux系统自带的
  未完待续。。。。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630906-1-1.html 上篇帖子: Redis(一):初识Redis内存数据库与持久化 下篇帖子: 解决Redis cluster的jedis驱动在高并发下的拥塞问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表