您的位置:首页 > 数据库 > Redis

Ubuntu安装redis

2016-12-05 16:40 302 查看
apt 安装完以后配置出现问题,可能是启动的时候没指定配置文件,总之配置文件修改的参数,启动后没有生效,用客户端config get xxx 打印出来的还是默认的。

wget安装完以后,修改配置文件,启动的时候指定配置文件,成功。
安装过程:
Installation
Download, extract and compile Redis with:
$ wget http://download.redis.io/releases/redis-3.2.5.tar.gz $ tar xzf redis-3.2.5.tar.gz
$ cd redis-3.2.5
$ make (如果没有make,需要安装。)
The binaries that are now compiled are available in the src directory.
Run Redis with:
$ src/redis-server (需要指定配置文件,src/redis-server
redis.conf)
You can interact with Redis using the built-in client:
$ src/redis-cliredis> set foo barOKredis> get foo"bar"

注意修改配置文件:
1.注释‘bind 127.0.0.1‘,允许远程访问;
2.修改’protected-mode no’
注A;
3.设置密码‘requirepass xxx’;

注A:

用一段代码就可以说明什么是protected-mode
if (protected-mode && !requirepass && !bind) {
Allow only 127.0.0.1,::1 or socket connections

Deny (with the long message ever!) others

}

其实设置成默认是为了保护对redis不了解的人,提供安全性,但是对于对于不需要bind和requirepass的使用者(例如内网),需要将protected-mode设置为no

谨慎使用 CONFIG set XXX xxx 来配置参数

注意下文的:重启动的时候,系统又按redis.conf的中指定的默认路径 ./去找dump.rdb了(没有就生成一个)。注意:设置dir时,./指的是redis-server所在的路径,而不是redis.conf所在的路径,所以尽快我们这里设置dir和redis.conf的路径相同,重新启动服务器后,也找不到前面的dump.rdb

经测试发现,在redis中使用命令config set 设置参数和使用redis.conf配置参数有着很大的差别,有时候甚至是致命的。

文件redis.conf是用来设置服务器参数的文件,启动redis服务器时,指定相应的redis.conf,系统将按redis.conf的配置运行(否则按系统默认值运行)。

redis.conf中所有的参数都可以在运行中的服务器上,通过config get xxx 和config set xxx读取和修改,congfig set修改的参数会立即生效。

那么二者是不是完全一样呢?不是的!

假如redis.conf 存在于路径/etc/redis 中,dir按默认设置为 ./ 。我们引用该路径,以 redis-server /etc/redis/redis.conf启动服务器。

启动后,我们用 config set dir /etc/redis 另外指定dir路径,命令马上生效,系统会立即将/etc/redis作为数据文件的路径,在那里生成dump.rdb,于是,系统中所有的数据都会存到/etc/redis/dump.rdb,路径和redis.conf相同。

然后我们 save 数据后 shutdown 服务器,接着再重新启动服务器,会怎么样呢?

你会发现:所有的数据都不见了, keys * 为空, dbsize=0。

这是为什么呢?因为我们重启动的时候,系统又按redis.conf的中指定的默认路径 ./去找dump.rdb了(没有就生成一个)。注意:设置dir时,./指的是redis-server所在的路径,而
9cb9
不是redis.conf所在的路径,所以尽快我们这里设置dir和redis.conf的路径相同,重新启动服务器后,也找不到前面的dump.rdb。

好吧,我们赶紧通过config set dir /etc/redis 改回路径,结果会怎么样呢?

命令立即生效,路径确实改了。但悲剧是,仍然没有数据,dbsize 为0 。可见,dump.rdb是在redis-server启动时读入内存的,虽然我们通过config set dir 可以把dir指向正确的路径,但数据不会导入到内存中。

如果此时,你 save 新的数据,会发生更大的悲剧:原来的数据文件dump.rdb被覆盖了!原来的数据丢了!在config set dir时,系统并没有检查dir有没有dump.rdb,而是在保存时直接生成了一个新的库。

结论:通过config set dir 来动态指定路径风险是很大的!config set 命令虽然会立即生效,但不会将参数变化保存到redis.conf!

像 dir /dbfilename/save/appendonly 等命令,根本不应该用config set 指定,必须在redis.conf中正确指定
参考:https://redis.io/download http://f.dataguru.cn/thread-158971-1-1.html http://zql3315.iteye.com/blog/2312708
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis ubuntu 安装 配置