redis 安装与安装中遇到的错误

redis 安装

wget http://download.redis.io/releases/redis-4.0.11.tar.gz
tar xzf redis-4.0..tar.gz
cd redis-4.0.
make

启动服务端

src/redis-server

客户端连接与测试

src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

redis常用命令

redis-cli

-h  指定远程登陆ip
-p 指定远程redis访问端口
-n 指定库b编号
-a 指定密码 示例
./redis-cli -h 127.0.0.1 -p -n -a djx 远程执行命令
清空所有的数据
./redis-cli  -h 127.0.0.1  -p 6379 -n 3  -a djx  flushall

redis 常用配置

redis设置密码

临时生效

在命令行用  config set  requirepass  password  来进行设置。重启redis后即失效。

[root@djx2 src]# ./redis-cli
127.0.0.1:> config set requirepass djx
OK
127.0.0.1:> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:> auth djx
OK
127.0.0.1:> config get requirepass
) "requirepass"
) "djx"

永久生效

  通过在redis的配置文件redis.conf 进行配置,在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数;

requirepass password

然后我们启动的时候需要指定我们的配置文件进行启动。

redis-server  /etc/redis.conf

redis 指定端口

默认是6379,我们可以更改成公司内部统一的端口。

port 

redis  指定监听

redis 默认绑定的是 127.0.0.1 ,也就是只能本地访问了,如果我们需要让外网也可以进行访问,那么我们需要更改默认的绑定。

bind  0.0.0.0

这样我们就可以让应用访问了。

redis 指定日志文件存放位置

默认日志文件的存放位置是为空的,也就是直接在控制台输出了。

我们可以在logfile中配置日志文件路径。

logfile "/var/log/redis.log"

redis 指定数据存放位置(要指定)

在redis.conf 的

# The filename where to dump the DB
dbfilename dump.rdb #指定数据存放的文件名称 # The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir ./ #指定数据存放的位置。
创建目录
mkdir /opt/redis/data/ 在配置文件中指定目录
dir /opt/redis/data/

redis 开启rdbchecksum

该参数,在3.2版本和4.0版本是默认开启的,但是在2.4版本中是没有开启的,该参数我们进行使用dump.rdb文件时是有作用的,因为在使用dump.rdb 的时候有该值是会效验该文件的完整性。rdbchecksum设置为no的话就不会效验该文件的完整性。

redis 后台运行

我们可以使用nohup和& 让redis在后台正常运行,并写入日志到/var/log/redis.log

nohup  ./src/redis-server   ./redis.conf  >>/var/log/redis.log >& &

安全配置

详细见

  • 如果只是内网使用的话,我们可以只监听本地,也就是 bind  127.0.0.1.
  • 设置访问密码,密码设置复杂点,requirepass
  • 使用专门的用户来运行 Redis,不要使用 root。
    useradd -M -s /sbin/nologin [username]
  • 隐藏重要命令

  Redis 无权限分离,其管理员账号和普通账号无明显区分。攻击者登录后可执行任意操作,因此需要隐藏以下重要命令:FLUSHDB, FLUSHALL, KEYS,PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME,DEBUG, EVAL

  我们可以隐藏,也可以将这些命令设置为复杂的字符。

  隐藏命令和重命名命令需要在 配置文件中配置  redis.conf。

  隐藏命令

rename-command CONFIG ""
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command SHUTDOWN ""

  重命名命令

rename-command CONFIG FYConfigdjx
rename-command FLUSHALL FYFlushalldjx
rename-command FLSUHDB FYFlushdbdjx
rename-command SHUTDOWN FYShutdowndjx

安装中遇到的错误

错误1   gcc  编译器没有安装

解决办法 : 安装gcc  编译器

yum  install  gcc  -y

错误2  jemalloc/jemalloc.h: No such file or directory。 (注意,这里需要特别注意)

针对这个错误,我们可以在README.md 文件中看到解释。

---------

Selecting a non-default memory allocator when building Redis is done by setting
the `MALLOC` environment variable. Redis is compiled and linked against libc
malloc by default, with the exception of jemalloc being the default on Linux
systems. This default was picked because jemalloc has proven to have fewer
fragmentation problems than libc malloc. To force compiling against libc malloc, use: % make MALLOC=libc To compile against jemalloc on Mac OS X systems, use: % make MALLOC=jemalloc Verbose build
-------------

网上大部分解决办法都是错误的,如下文:

centos(错误解决办法)

make MALLOC=libc

正确解决办法(针对2.2以上的版本)

make distclean  && make

导致出现这个错误的原因

  错误的本质是我们在开始执行make 时遇到了错误(大部分是由于gcc未安装),然后我们安装好了gcc 后,我们再执行make  ,这时就出现了jemalloc/jemalloc.h: No such file or directory。这是因为上次的

编译失败,有残留的文件,我们需要清理下,然后重新编译就可以了。

网上的解决办法是有什么错误吗?

  网上的解决办法虽然最后也是可以成功安装好 redis ,但是是有一些隐患的,首先我们要知道redis 需要使用内存分配器的, make  MALLOC=jemalloc  就是指定内存分配器为 jemalloc ,make MALLOC=libc 就是指定内存分配器为 libc ,这个是有安全隐患的,jemalloc 内存分配器在实践中处理内存碎片是要比libc 好的,而且在README.md 文档也说明到了,jemalloc内存分配器也是包含在源码包里面的,可以在deps  目录下看到 jemalloc 目录。

以上就是我在安装的时候遇到的问题,后续如果还有其他会继续补充。

redis 安装 与错误解决办法的更多相关文章

  1. SQL Server2005中文版x64安装29506错误解决办法

    在使用SQL Server 2005简体中版安装时,使用X86(32位操作系统下)安装没有出现任何问题.可是在X64(64位操作系统下)安装过程没有出现问题,可是安装完成后却没有Microsoft S ...

  2. wget在linux中安装出现错误解决办法

    在使用wget命令报错 certificate common name 'xxx' doesn't match requestde host name,我们一般的解决办法是查找下载地址,但是有时候更换 ...

  3. CTC安装及其错误解决办法:binding.cpp:92:49: error: cannot convert ‘THCudaTensor*’ to ‘const THFloatTensor*’ for argument ‘1’ to ‘int64_t THFloatTensor_size(const THFloatTensor*, int)’

    CTC安装: 1. 在终端执行命令:git clone https://github.com/SeanNaren/warp-c) (效果如下图,大家不用管我前面括号的内容,那是我打开的虚拟环境) 2. ...

  4. mysql-5.6.27源码安装及错误解决办法

    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.27.tar.gz yum install -y cmake  当然也可以自己下载源码包安 ...

  5. java安装1335错误解决办法(亲测)

    心血来潮想了解一下java,结果一开始就碰到了让心"恶心"的1335错误. 废话不多说,直接看下面: 你可以先尝试在这个链接下载java.exe文件 http://www.orac ...

  6. 安装SQL2008时显示必须重启计算机才可以继续安装的错误—解决办法

    数据库学习已经有一段时间了,前几天进入了SQL视频的学习,在安装数据库的时候,出现问题,总显示重启失败 ,无法继续安装,如图所示 出现这种问题 ,应该如何解决呢? 解决方法如下: (1).开始菜单-搜 ...

  7. ADT安装Genymotion的eclipse插件安装及错误解决办法

    接触安卓开发也有很长一段时间了,但是一直使用的真机测试程序,因为感觉android模拟器实在是太不方便,运行慢,而且经常出错.最近听人介绍说Genymotion这款Android模拟器相当不错,于是打 ...

  8. PHP编译安装时常见错误解决办法,php编译常见错误

    PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...

  9. 2016最新CocoaPods安装和错误解决 + 自己的经验

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Times; color: #333333; background-color: #fffff ...

随机推荐

  1. 解决 multiple definition of

    总结了解决multiple definition of的方法: 问题原因:    当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译#ifndef TEST_H#define TEST_H ...

  2. WC Java 实现

    项目 github 地址 一. 实现情况 基本要求 c 统计文件字符数 (实现) w 统计文件词数 (实现) l 统计文件行数(实现) 扩展功能 s 递归处理目录下符合条件得文件(实现) a 返回文件 ...

  3. .NET MVC CSRF/XSRF 漏洞

    最近我跟一个漏洞还有一群阿三干起来了…… 背景: 我的客户是一个世界知名的药企,最近这个客户上台了一位阿三管理者,这个货上线第一个事儿就是要把现有的软件供应商重新洗牌一遍.由于我们的客户关系维护的非常 ...

  4. Buck工作原理分析,连续模式,断续模式

    Part01:Buck电路工作原理: 图1-1 Buck电路拓扑结构 Buck电路的拓扑结构如图1-1所示: (1) input接输入电源,既直流电动势: (2) IGBT1为开关管,可以选择以全控型 ...

  5. /bin/sh: cc: 未找到命令

    redis 4安装出现 /bin/sh  cc:  未找到命令 解决: yum -y install gcc automake autoconf libtool make

  6. [Xamarin]我的Xamarin填坑之旅(一)

    一想到明天是星期五,不对,是今天,心里就很激动,毕竟明天没课.激动之余,来写一篇博客,记录一下最近踏坑Xamarin开发校园助手APP的一些事儿.也许更像是一篇流水账. 在扯Xamarin之前,有必要 ...

  7. IBM主机家族——大型机、中型机、小型机

    对于x86架构的开放品台机器来说,IBM的封闭平台系列可以说是另一个“体系世界”. IBM z series    大型机, z/os操作系统 IBM i series/AS400   中型机,  i ...

  8. string的函数的学习

    1.string类型的构造函数和对象的定义 string s3 : 把string s2 拷贝的 s3 string s4 : 把数组首地址或者字符串首地址strArr 从0开始截取到第n个字母 st ...

  9. Design-341. Flatten Nested List Iterator

    Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...

  10. poj2488 A Knight's Journey

    http://poj.org/problem?id=2488 题目大意:骑士厌倦了一遍又一遍地看到同样的黑白方块,于是决定去旅行. 世界各地.当一个骑士移动时,他走的是“日”字.骑士的世界是他赖以生存 ...