Linux环境下Redis的部署安装

本文详细介绍了Redis的key-value存储特性、数据结构、内存与磁盘同步机制,以及在Linux环境下的安装过程、服务管理和安全性设置,包括密码保护和防火墙配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.redis简单说明

a.在前面我简单的说过redis封装成共用类的实现,地址如下:高性能文件缓存key-value存储—Redis - Kencery - 博客园

b.redis是一个key-value存储系统,它支持存储的value类型相比较Memcached更多,包括string,list,set,sets,hashes等(It supports data structures such as strings,hashes,lists,sets,sorted sets with range queries,bitmaps,hyperloglogs and geospatial indexes with radius queies)这些数据类型都支持push/pop,Add/remove等丰富的操作,而且这些操作都是原子性的。

c.redis和Memcached一样,为了保证效率,数据都是缓存在内存中的,区别就是redis会周期性的将更新的数据写入磁盘,并且可以实现主从(master-slave)同步。

d.redis在数据存储方面,采用了NoSql数据库的思想,即将Key作为数据检索的唯一标示,可以将其简单的理解为关系型数据库中索引的键,而value则作为数据存储的主要对象,其中每一个Value都有一个Key与之对应,在Redis中,Value将被视为二进制字节流用于存储任何格式的数据,如Json,XML,图片和序列化对象的字节流等,因此我们也可以将其想象为RDB中的Blob类型字段,从而在我们进行数据查询是,只能基于Key作为我们查询的条件。

e.redis官网:Redis

2.准备工作

a.通过上面的说明之后我们既可以开始在linux系统下面安装redis了,在安装redis的过程中我遇到了一些问题,但也全部解决了,本来我想直接写然后遇到错误在引出来需要安装什么,但是感觉不太好写,所以我还是在前面将这些软件准备好,大家安装的时候可以先去安装redis去验证会不会出现问题,在解决也行。

b.下载redis的包,下载地址:http://download.redis.io/releases/redis-3.0.5.tar.gz

c.redis是C语言实现的,所以在Linux系统中需要安装gcc来进行编译,安装gcc请参考第三步。

3.redis的安装

a.通过上面几步之后,准备工作已经完成,即可以开始安装redis了。

解压到当前目录

tar -zxvf redis-2.8.19.tar.gz 解压到当前目录 

这里写图片描述

解压后文件

进入解压目录编译make,将.c编译成可执行.o文件

进入解压目录

编译

安装到指定目录

[root@www redis-2.8.19]# make PREFIX=/usr/local/redis install

1

安装

启动redis

进入安装目录/usr/local/redis/bin下有几个可执行文件 

可执行文件

redis-benchmark —-性能测试工具

reids-check-aof —-检查修复aof文件 appendonly file 日志文件、数据持久化

redis-check-dump —-检查快照持久化文件

redis-cli —-命令行客户端

redis-server —-redis服务器启动命令

启动:

[root@www redis]# bin/redis-server

./redis-server &      启动redis,加上&表示使redis以后台程序方式运行

启动

端口号为:6379

启动测试

当redis启动完成之后,使用netstat -ntlp |grep 6379  查看端口是否在使用中,如果在使用中,则说明安装成功,否则安装没有成功。

连接redis并且测试,连接命令为:src/redis-cli,最后的测试结果如图所示:

【开放redis端口】

打开防火墙配置文件, 添加端口6379,才可供远程访问

    vim  /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

重启防火墙

service iptables restart

4.Linux中设置redis的服务器启动和关闭

a.如上面所述,我们已经完成了对redis的安装,接下来就可以按照上面的方法使用,但是这里还存在一些小问题,那就是linux系统重启之后都需要找到安装路径才能执行启动命令,那么我们可以设置按照service的形式来启动redis吗?

b.执行命令:vim /etc/init.d/redis,创建脚本文件,在文件中写入如下代码,保存并且退出:

redis 脚本:

# Date 2015-12-10

# chkconfig: 2345 10 90  

# description: Start and Stop redis   

PATH=/usr/redis/redis-3.2.10/src:/sbin:/usr/local/redis/bin:/bin   

REDISPORT=6379  

EXEC=/usr/redis/redis-3.2.10/src/redis-server   

REDIS_CLI=/usr/redis/redis-3.2.10/src/redis-cli   

PIDFILE=/var/run/redis.pid   

CONF="/usr/redis/redis-3.2.10/redis.conf"  

AUTH="1234"  

case "$1" in   

        start)   

                if [ -f $PIDFILE ]   

                then   

                        echo "$PIDFILE exists, process is already running or crashed."  

                else  

                        echo "Starting Redis server..."  

                        $EXEC $CONF   

                fi   

                if [ "$?"="0" ]   

                then   

                        echo "Redis is running..."  

                fi   

                ;;   

        stop)   

                if [-f $PIDFILE ]   

                then   

                        echo "$PIDFILE exists, process is not running."  

                else  

                        PID=$(cat $PIDFILE)   

                        echo "Stopping..."  

                       $REDIS_CLI -p $REDISPORT  SHUTDOWN    

                        sleep 2  

                       while [ -x $PIDFILE ]   

                       do  

                                echo "Waiting for Redis to shutdown..."  

                               sleep 1  

                        done   

                        echo "Redis stopped"  

                fi   

                ;;   

        restart|force-reload)   

                ${0} stop   

                ${0} start   

                ;;   

        *)   

               echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  

                exit 1  

esac

c.给文件添加权限,使用脚本文件可以执行,命令为:

chmod 755 /etc/init.d/redis

chmod a+x /etc/init.d/redis //a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人

d.以上工作顺利完成并且没有出现报错,则配置完成,每次我们开机之后都可以输入以下两个命令启动和关闭redis服务,如图所示:

启动,停止redis

service redis start   #或者 /etc/init.d/redis start  

service redis stop   #或者 /etc/init.d/redis stop  

f.当开启服务之后既可以连接redis测试进行操作或者使用其他客户端来操作redis,测试如图所示:

5.Linux中设置redis的开机启动

a.在大部分情况下,我们需要服务器重新启动的时候自动开启redis,而不是我们手工的去开启,那么下来就说一下开机自动启动的设置。

b.首先设置redis.config中的daemonize为yes,确保守护进行开启,执行以下命令:

b.1 cd  /usr/redis/redis-3.2.10

b.2 vim redis.conf  开启配置文件,找到daemonize属性酒设置为yes, 保存并且退出即可。

c.然后设置开机启动,命令:sudo chkconfig redis on

d.当以上步骤完成之后,即可以可以重新启动Linux然后按照前面所写的测试是否随机器自动启动了。

6.redis设置密码访问

你的redis在真是环境中不可以谁想访问就可以访问,所以必须要设置密码

设置密码的流程如下:

vim  /etc/redis.conf

#requirepass foobared去掉注释,foobared改为自己的密码,我在这里改为

requirepass 123456

然后保存,重启服务

cd /usr/local/bin

./redis-server /etc/redis.conf

测试连接:./redis-cli 

输入命令 会提示(error) NOAUTH Authentication required. 这是属于正常现象。

我们输入 auth  123456#你刚才设置的密码

如:

redis 127.0.0.1:6379> config get requirepass

1) "requirepass"

2) "123456"

远程访问不了:

这是因为在redis.conf中有个配置 bind 127.0.0.1 这个是默认只有本机访问,把这个注释掉就好了,注释以后查看redis进程就变为下面这样:

[root@localhost redis]# ps -ef | grep redis

root      5655     1  0 11:40 ?        00:00:23 ./redis-server *:6379

root     21184 18040  0 17:33 pts/1    00:00:00 grep --color=auto redis

这个*号就表示允许其它用户访问了。然后在用打开本机的 cmd使用 telnet ip 端口 就能ping通了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值