ubuntu系统中搭建redis数据库安装以及多实例配置

发布于:2017年05月04日    浏览:191 次    属于:服务器运维 > 环境配置 原创作者:张晓栋

 

redis 是一个key value 对应型的NoSql数据库,运行于内存中,属于内存数据库所以读写速度相比传统数据库要快很多,redis被经常用作对接保存网站的Session信息,这 样可以实现Session共享在分布式部署程序的过程中必不可少,而且用redis保存session可以有效避免由于网站程序内存回收导致session丢失,redis在linux下运行效能要比在 windows中运行效能高很多,所以我们不推荐在windows服务器上部署redis,本文讲在ubuntu下部署安装redis,以及配置多个redis实例。


首先 sudo sh 输入密码进入管理员操作模块,然后 apt-get update 更新一下软件源


apt-get install redis-server


编辑 redis 的配置文件需要用到 vim 所以没有安装 vim 的需要执行下面的命令安装vim

apt-get install vim-gtk


vim 和  redis-server 都安装好之后开始配置 redis

redis默认只支持使用127.0.0.1登录连接,而且密码为空,我通过编辑redis的配置文件来开启远程IP连接,并设置登录密码

vim /etc/redis/redis.conf

找到 bind 127.0.0.1 在前面添加# 进行注释,我们可以使用服务器所有的IP地址来连接 redis

找到 # requirepass foobared  取消前面的# ,将foobared替换为你想要设置的密码比如 requirepass 123456

esc : wq 保存退出




重启redis

/etc/init.d/redis-server restart


连接redis

redis-cli -a 123456


接下来试试读写 redis

写入 set key value   如:set name xiaoming

读取 get key            如:get name


读写成功,redis的安装就算完成了。


默认redis 只有一个实例,但是redis在运行是一般只消耗内存对CPU和磁盘IO的消耗很小,所以一般一个服务器会运行多个redis实例,当然土豪无所谓,接下来讲如何设置 多个 redis 实例。


首先复制一个新的 redis.conf 出来,一般复制出来的文件命名规则为 redis+端口号.conf

cp /etc/redis/redis.conf /etc/redis/redis1550.conf

复制完成后编辑新复制出来的配置文件

vim /etc/redis/redis1550.conf

修改一下三点

pidfile /var/run/redis/redis-server.pid  修改为 pidfile /var/run/redis/redis-server1550.pid

port 6379 修改为 port 1550

logfile /var/log/redis/redis-server.log  修改为 logfile /var/log/redis/redis-server1550.log

dbfilename dump.rdb 修改为 dbfilename dump1550.rdb

esc : wq 保存退出


然后复制一个属于这个端口的服务

cp /etc/init.d/redis-server /etc/init.d/redis-server-1550

编辑刚刚复制的服务

vim /etc/init.d/redis-server-1550


DAEMON_ARGS=/etc/redis/redis.conf 修改为 DAEMON_ARGS=/etc/redis/redis1550.conf

PIDFILE=$RUNDIR/redis-server.pid 修改为 PIDFILE=$RUNDIR/redis-server1550.pid

esc : wq 保存退出


启动刚刚创建的 1550 的redies 实例

/etc/init.d/redis-server-1550 start


查看一下现在系统中应该有两个 redis 在运行了

ps auxf|grep redis


可以看到现在有两个 redis 在运行了一个是我们创建的 1550 一个是 默认的 6379


连接1550的实例方法和默认的方式一样的,需要加一个端口参数 -p 1550

redis-cli -p 1550 -a 123456

读写 1550 的实例

set age 18

get age


到此教程就结束了,如果想要多创建几个实例只要按照文中创建1550实例的方式换一个端口再次才做一次就可以了。