Redis简单介绍及安装,持久化,主从架构搭建

一.redis简单介绍

一.常见的数据库分类

常见的关系型数据库:mysql oracle sqlserver db2等
常见的非关系型数据库:redis mongo ES

二.redis重要特性

1.速度快 由c语言写成,代码优雅,单线程架构
2.支持多种数据结构
字符串,哈希,列表,集合,有序集合
3.丰富的功能
天然计数器,健过期功能,消息队列
4.支持客户端语言多
php,java,python
5.数据持久化
所有的数据都运行在内存中
支持2种格式持久化数据AOF RDB AOF&RDB
6.自带多种高可用架构
主从,哨兵,集群(小型环境常用主从,大型环境用集群)

三. redis应用场景

1.缓存-键过期时间
把session会话存在redis,过期删除缓存用户信息,缓存Mysql部分数据,用户先访问redis,redis没有再访问mysql,然后回写给redis。
商城优惠卷过期时间
2**.排行榜-列表&有序集合**
热度/点击数排行榜
直播间礼物积分排行
3.计数器-天然支持计数器
帖子浏览数
视频播放数
评论数
点赞/踩
4.社交网络-集合
粉丝
共同好友
兴趣爱好
标签
5.消息队列-发布订阅
配合ELK缓存收集来的日志

二.安装redis

1.准备安装和数据目录

mkdir -p /data/soft
mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}

2.下载redis安装包(这里为5.0左右版本)

cd /data/soft
wget http://download.redis.io/releases/redis-5.0.7.tar.gz

3.解压redis到/opt/redis_cluster,做个软连接方便更新

tar xf redis-5.0.7.tar.gz -C /opt/redis_cluster/
ln -s /opt/redis_cluster/redis-5.0.7  /opt/redis_cluster/redis

4.切换目录安装redis

cd /opt/redis_cluster/redis
make && make install 

5.编写配置文件

vim /opt/redis_cluster/redis_6379/conf/6379.conf
bind 127.0.0.1 192.168.1.102    --ip地址
port 6379                       --端口号
daemonize yes              --守护进程开启,可在后台运行除非kill掉进程
pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile    /opt/redis_cluster/redis_6379/logs/redis_6379.log
databases 16   --最多创建16个数据库
dbfilename redis.rdb 
dir /opt/redis_cluster/redis_6379

6.启动当前redis服务

redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

三.redis基本操作命令

1.全局命令

	KEYS *  #列出所有键值名,但在企业环境禁止使用
	DBSIZE  #查看有多少键值数
	EXISTS	#查看键值是否存在
	EXPIRE k2 20	#设置K2过期时间为20秒,20秒后k2自动取消
	PERSIST k2		#取消k2的过期时间
	TTL k2	#查看k2的生命周期
	TYPE    #查看数据类型

2.字符串类型:string

	SET	k3 3		#创建键值
	GET	k3		#查看键值
	DEL	k2		#删除键值 
	INCR k3			#键值k3为整数,递增加1
	INCRBY k3 10  		#递增k3的量值10 
	MSET k4 v4 k5 v5 k6 v6 k7 v7  	#批量创建键值
	MGET k4 k5 k6 k7				#批量查看键值

3.列表:list

	RPUSH list1 1 2 3 4  #创建列表list1,值为1 2 3 4
	RPUSH list1 5 6 7 8  #在list1右侧添加5 6 7 8
	LPUSH list1 0 	     #在list1左侧添加0
	LRANGE list1 0  -1   #查看list1所有值
	RPOP list1	     #删除右侧最后一个值
	LPOP list1	     #删除左侧第一个值
	LTRIM list1 0 2	     #仅保留前3位,其他值删除

4.哈希:hash

	HMSET user:1000 username zhangsan age 17 job it  #创建hash键值user:1000 
	HGET user:1000 username				#查看键值中username参数
	HGET user:1000 age				#查看键值中age参数
	HGET user:1000 job				#查看键值中job参数
	HMSET user:1000 tel 18866668888			#添加值tel

5.集合:set

	SADD set1 1 2 3		#创建集合set1
	SMEMBERS set1		#查看集合set1
	SADD set1 1 4		#为集合set1添加值1 4 ,但集合特性是去除重复,所以1无法再添加
	SREM set1 1 4		#删除集合的值1 4
	sadd set2 1 4 5		#创建第二个集合set2
	SDIFF set1 set2		#求差集
	SINTER set1 set2	#求合集(交集)
	SUNION set1 set2	#求并集

四.redis持久化

1.RDB及AOF的优缺点

RDB:生成时间点快照,保存于硬盘
		优点:速度快,适合做备份,能做主从复制,单开子进程进行rdb操作不影响主业务
		缺点:会有部分数据丢失
		
AOF:记录所有写操作命令,通过再次执行这些命令还原数据
		优点:最大程度保证数据不丢失
		缺点:日志记录量太大

2.RDB配置:

redis-cli  --登录redis
bgsave    --保存命令
vim /opt/redis_cluster/redis_6379/conf/6379.conf	
添加:
save 900 1           #在900秒(15分钟)内,如果至少有1个key发生变化,则dump内存快照。
save 300 10          #在300秒(5分钟)内,如果至少有10个key发生变化,则dump内存快照。
save 60 10000        #在60秒(1分钟)内,如果至少有10000个key发生变化,则dump内存快照

满足你所设置的条件才会触发备份一次,根据实际情况来设定条件,一旦出现问题会丢失一部分数据。
3.AOF配置

vim /opt/redis_cluster/redis_6379/conf/6379.conf
添加:
appendonly yes			#启用AOF持久化
appendfilename "redis.aof"	#指定AOF文件名
appendfsync everysec		#每秒同步一次

4.修改完配置文件都要重启redis

redis-cli shutdown
redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

五.主从复制环境搭建

1.redis主从复制
为解决单点故障把数据复制到一个或多个副本副本服务器(从服务器),实现故障恢复和负载均衡.

2.环境准备:两台虚拟机
主服务器:192.168.1.102
从服务器:192.168.1.103
关闭防火墙,selinux,统一网卡

3.开启第二台服务器,安装redis
(1)把第一台服务器的redis安装目录,scp到第二台服务器上

	scp -rp /opt/redis_cluster/ root@192.168.1.103:/opt

(2)在第二台服务器上,make install安装redis

	cd /opt/redis_cluster/redis
	make install
	vim /opt/redis_cluster/redis_6379/conf/6379.conf 
	修改:
	bind 127.0.0.1 192.168.1.103
	slaveof 192.168.1.102 6379
	保存退出

(3)启动服务

	redis-server /opt/redis_cluster/redis_6379/conf/6379.conf

(4)主服务器上新建键值,测试从服务器自动同步

(5)从服务器在同步过程中,只能复制主数据库的数据,不能手动添加修改数据;
如果从服务器非要修改数据,需要断开同步:
redis-cli slaveof no one

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值