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

Linux下Redis的安装和使用

2017-02-24 14:14 465 查看
一、Redis介绍

Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。

和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。

二、Redis的安装

下面介绍在Linux环境下,Redis的安装与部署

1、首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载稳定版3.0.7即可。

2、通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作 tar -zxvf redis-3.2.8.tar.gz


3、执行make 对Redis解压后文件进行编译

这里会用到gcc,如报找到到gcc,先安装gcc,命令为: yum install gcc



编译完成之后,可以看到解压文件redis-3.0.7 中会有对应的src、conf等文件夹,这和windows下安装解压的文件一样,大部分安装包都会有对应的类文件、配置文件和一些命令文件



4、编译成功后,进入src文件夹,执行make install进行Redis安装

5、安装完成,界面如下



三、Redis的部署

安装成功后,下面对Redis 进行部署

1、首先为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中

a)创建bin和redis.conf文件

mkdir -p /usr/local/redis-3.2.8/bin

mkdir -p /usr/local/redis-3.2.8/ect


b)执行Linux文件移动命令

mv /usr/redis-3.2.8/redis.conf /usr/local/redis-3.2.8/etc

cd /usr/redis-3.2.8/src

mv mkreleasdhdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis-3.2.8/bin
2、执行Redis-server 命令,启动Redis 服务



注意:这里直接执行Redis-server 启动的Redis服务,是在前台直接运行的(效果如上图),也就是说,执行完该命令后,如果Lunix关闭当前会话,则Redis服务也随即关闭。正常情况下,启动Redis服务需要从后台启动,并且指定启动配置文件。

3、后台启动redis服务

a)首先编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)

cd etc/

Vi redis.conf

b)再次启动redis服务,并指定启动服务配置文件

redis-server /usr/local/redis-3.2.8/etc/redis.conf



4、服务端启动成功后,执行redis-cli启动Redis 客户端,查看端口号






四、总结Linux 、Redis 操作常用命令

Linux:

cd /usr 从子文件夹进入上级文件夹usr

cd local 从父到子

mv /A /B 将文件A移动到B

vi usr/local/redis/redis.conf 编辑redis.conf 文件

:wq 保存修改,并退出

Redis:

Redis-server /usr..../redis.conf 启动redis服务,并指定配置文件

Redis-cli 启动redis 客户端

Pkill redis-server 关闭redis服务

Redis-cli shutdown 关闭redis客户端

Netstat -tunpl|grep 6379 查看redis 默认端口号6379占用情况

附上一段linux简单脚本启动redis;

vim startRedis

写下如下代码,''wq'保存退出

#!/bin/sh

./redis-server ../etc/redis.conf

添加执行权限:

chmod +x startRedis

五、Redis相关配置文件
[b]#requirepass foobared  
[/b]

[b]去掉行前的注释,并修改密码为所需的密码,保存文件
[/b]

[b]requirepass 123456
[/b]

[b]重启redis
[/b]

[b]这个时候尝试登录redis,发现可以登上,但是执行具体命令是提示操作不允许
[/b]



redis-cli -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> keys *
(error) ERR operation not permitted
redis 127.0.0.1:6379> select 1
(error) ERR operation not permitted
redis 127.0.0.1:6379[1]>


[b]用密码登录并执行具体的命令看到可以成功执行
[/b]



redis-cli -h 127.0.0.1 -p 6379 -a 123456
redis 127.0.0.1:6379> keys *
1) "myset"
2) "mysortset"
redis 127.0.0.1:6379> select 1
OK
redis 127.0.0.1:6379[1]> config get requirepass
1) "requirepass"
2) "123456"


2.通过命令行进行配置



redis 127.0.0.1:6379[1]> config set requirepass 111111
OK
redis 127.0.0.1:6379[1]> config get requirepass
1) "requirepass"
2) "111111"


[b]无需重启redis
[/b]

[b]使用第一步中配置文件中配置的老密码登录redis,会发现原来的密码已不可用,操作被拒绝
[/b]



redis-cli -h 127.0.0.1 -p 6379 -a 123456
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted


使用修改后的密码登录redis,可以执行相应操作



redis-cli -h 127.0.0.1 -p 6379 -a 111111
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "111111
尝试重启一下redis,用新配置的密码登录redis执行操作,发现新的密码失效,redis重新使用了配置文件中的密码



sudo service redis restart
Stopping redis-server:                                     [  OK  ]
Starting redis-server:                                     [  OK  ]
redis-cli -h 127.0.0.1 -p 6379 -a 111111
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
redis-cli -h 127.0.0.1 -p 6379 -a 123456
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"


除了在登录时通过 -a 参数制定密码外,还可以登录时不指定密码,而在执行操作前进行认证。



redis-cli -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
redis 127.0.0.1:6379> auth 123456
OK
redis 127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
3.master配置了密码,slave如何配置

若master配置了密码则slave也要配置相应的密码参数否则无法进行正常复制的。

slave中配置文件内找到如下行,移除注释,修改密码即可

[b]#masterauth  mstpassword

redis下载地址:http://download.csdn.net/download/liuwei8nn1/9762924

[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: