What is the Redis?

  Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.


安装配置:

  下载源码包:

wget http://download.redis.io/releases/redis-3.2.9.tar.gz

  为了方便维护,管理及安全,建议创建一个普通用户来运行redis,此处演示基于redis用户,系统为CentOS7

groupadd redis

useradd -d /home/redis -g redis -m redis

    // -d DIRECTORY :指定用户的家目录
// -m DIRECTORY:创建用户的家目录

  解压安装包,并进入解压后的目录可以看到:

  进入src目录,开始编译:

cd src && make all

  编译成功后,显示:

  注意:此时可能会出现无法编译或者编译报错的情况。

  此错误大体报错信息如下:  

    error: jemalloc/jemalloc.h: No such file or directory

  本人第一次编译时就出现了这个错误,后来查阅资料后得知:在解压包中有个README.md文件,里面有相关说明:

 

  说关于分配器allocator, 如果有MALLOC 这个环境变量, 会用这个环境变量所赋值的分配器去建立Redis。

  而且libc 并不是默认的分配器, 默认的是 jemalloc, 因为 jemalloc 被证明有更少的fragmentation problems 比libc。

  但是如果你又没有jemalloc 而只有libc当然 make 出错。 所以加这么一个参数。

  此环境变量可以在/etc/profile或者/etc/profile.d/目录下自行设置:

  make MALLOC=libc

  设置后保存退出,重载一下此文件即可。

  安装redis:

  还是在src目录下,有个Makefile文件,里面定义了具体的安装细节,可以自行查阅。

  其中有一项定义安装路径的为:

  “PRIFIX?=/usr/local”

  可根据需要自行进行修改,此处演示定义的是:

  

  之后执行:

make install

  显示:

  

  则表示安装成功。

  进入/usr/local/redis目录,可以看到:

  

  为了以后使用相关redis命令方便,可以在redis用户的家目录下的.bash_profile文件中定义相关的环境变量:

  

  然后复制一份redis.conf至安装目录,方便使用:

  

  至此已基本完成redis的安装,接下来通过简单配置几项,即可启动redis

  由于redis功能强大,支持的配置选项较多,此处不做过多赘述,个人就几个必改选项进行陈述:  

bind 127.0.0.1  //redis server端监听的地址

daemonize yes  //是否以守护进程方式运行,默认为no

requirepass YOUR_PASSWORD  //基于密码进认证

  修改完上述三项后,可以运行:

redis-server redis.conf

  注意:后面跟的配置文件要是绝对路径。

  小技巧:所有的redis命令可以使用-h选项获取帮助。

  验证是否可以正常运行:

  

  回应PONG则证明redis正常运行,至此安装并启动redis已完成。

最新文章

  1. myrocks复制中断问题排查
  2. Java基础之IO流
  3. 在Node.js使用mysql模块时遇到的坑
  4. console.log()与alert()的区别
  5. 使用putty组件向服务器上传或下载文件
  6. hdu 4081 最小生成树+树形dp
  7. 69. Sqrt(x)
  8. Mysql中关于 group_concat函数详解
  9. SimpleDateFormat 的性能和线程安全性
  10. Web App 前端构建(纯净版)
  11. android5.0(Lollipop) BLE Peripheral深入理解系统篇之提高篇
  12. 在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样?
  13. 为通过ClickOnce部署的应用程序进行数字签名
  14. IE8浏览器兼容问题总结
  15. iOS中UITextField 使用全面解析
  16. react项目后台及上线步骤
  17. league之csv导出
  18. Codeforces Round #207 (Div. 1) A. Knight Tournament (线段树离线)
  19. https://api.highcharts.com/gantt/
  20. _ZNote_Qt_QtCreator_Tips_粘贴_历史剪切板

热门文章

  1. LOL遇到登录服务器问题,未能连接到网络原因
  2. jpa简单规则(转https://www.cnblogs.com/rulian/p/6434631.html)
  3. C++之赋值、比较、逻辑运算符
  4. Android笔记之RoundedImageView
  5. sys_call_table HOOK
  6. 21个CSS技巧
  7. 从Hadoop+Storm架构转向Spark架构
  8. vue-router如何参数传递
  9. merge存储引擎基本介绍和使用规范说明
  10. U Must Know The .Net --7