Redis 简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis与其他key-value存储有什么不同?
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。 同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
环境
CentOS 7.2 64位
搭建流程
下载,解压,编译安装
cd /opt
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
tar xzf redis-4.0.1.tar.gz
cd redis-4.0.1
make
创建配置
redis默认的 redis.conf 配置文件内容太多,很多配置,不太好,如果后面用的时候,再往自己定义的配置文件加
1.创建 redis-sentinel 目录 用于放自定义配置文件启动 redis.conf
mkdir redis-sentinel
2.在 redis-sentinel 目录下,创建 redis.conf
cd /opt/redis-4.0.1/redis-sentinel
vim redis.conf
3.把如下Redis.conf 配置内容粘贴进去
Redis.conf 配置
port 6379
# bind 127.0.0.1
daemonize yes
pidfile /var/run/redis_6379.pid
appendonly yes
requirepass 123456
redis.conf 配置说明
#端口7000
port 7000
#默认IP为127.0.0.1,需要改为其他节点机器可访问的IP
bind 192.168.252.101
#redis后台运行
daemonize yes
#当 Redis 以守护进程的方式运行的时候,Redis 默认会把 pid 文件放在/var/run/redis_6379.pid
pidfile /var/run/redis_6379.pid
#aof日志开启,有需要就开启,它会每次写操作都记录一条日志
appendonly yes
#requirepass,密码认证,不需要可以给前面加个 # 注释掉,为了方便测试,密码给改成了123456
requirepass 123456
设置完,按“ESC”键,输入:wq!保存退出
启动服务
使用指定配置文件启动
./redis-server ../redis-sentinel/redis.conf
查看启动状态
ps -ef | grep redis
编辑redis开机启动redis脚本
vim /etc/init.d/redis
在/etc/init.d/redis文件中添加以下内容
#!/bin/sh
#kconfig: 345 86 14
#description: Startup and shutdown script for Redis
PROGDIR=/opt/redis-4.0.1 #安装路径
PROGNAME=src/redis-server
DAEMON=$PROGDIR/$PROGNAME
CONFIG=/opt/redis-4.0.1/redis-sentinel/redis.conf
PIDFILE=/var/run/redis_6379.pid
DESC="redis daemon"
SCRIPTNAME=/etc/rc.d/init.d/redis
start()
{
if test -x $DAEMON
then
echo -e "Starting $DESC: $PROGNAME"
if $DAEMON $CONFIG
then
echo -e "OK"
else
echo -e "failed"
fi
else
echo -e "Couldn't find Redis Server ($DAEMON)"
fi
}
stop()
{
if test -e $PIDFILE
then
echo -e "Stopping $DESC: $PROGNAME"
if kill `cat $PIDFILE`
then
echo -e "OK"
else
echo -e "failed"
fi
else
echo -e "No Redis Server ($DAEMON) running"
fi
}
restart()
{
echo -e "Restarting $DESC: $PROGNAME"
stop
start
}
list()
{
ps aux | grep $PROGNAME
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
list)
list
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|list}" >&2
exit 1
;;
esac
exit 0
设置权限
chmod 755 /etc/init.d/redis
使用脚本启动
service redis start
停止服务
service redis stop
重启服务
service redis restart
查看进程
service redis list
Redis Desktop Manager连接Redis
Redis Desktop Manager是Redis图形化管理工具,方便管理人员更方便直观地管理Redis数据。
然而在使用Redis Desktop Manager之前,有几个要素需要注意:
编辑防火墙配置文件
vim /etc/sysconfig/iptables
加入
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
设置完,按“ESC”键,输入:wq!保存退出
重启防火墙配置
systemctl restart iptables.service
可以在window系统中的cmd命令里输入telnet 192.168.8.129 6379,看是否Telnet通
如果不报错,并且进入了如图界面,证明配置没有问题
如果上面都没问题,可以用Redis Desktop Manager工具连接192.168.8.129服务器里的redis服务了