redis学习总结

NoSQL数据库简介:

特点:
	1.数据结构灵活易扩展
	2.大数据量高性能,得益于无关系性和结构简单
	3.高可用
	4.细粒度的缓存,不易导致失效。
分类:
	1.KV键值:Redis,Memcache
	2.文档型:MongoDB
	3.列存储
	4.图关系

分布式系统的CAP理论

C:强一致性,A:可用性,P:分区容错性。只可3取2,不可兼得。
CA:比如传统关系型数据库。AP:大多数网站架构。CP:NoSQL数据库如redis。
BASE:基本可用+软状态+最终一致。由于大型系统的地域分布和极高的性能要求,不可能采用分布式事物,以弱一致性换取性能。

redis:

(属于NoSQL数据库,且是分布式的,去中心化的集群服务(hash取余的方式判断每个key所在的节点)。用主从复制来增强可用性)

1.redis常用数据类型:

	string/list/set/hashMap/zset

2.redis过期策略和内存淘汰策略

	过期策略:(只针对设置了过期时间的key)
		1.到期立即过期。对每个设置过期时间的key都创建一个定时器,到期就立即清理此key.
		2.定期过期(推荐)。周期性扫描expires字典中的key,并清除其中已过期的key。
			如果其中的过期key超过一定比例就进行连续扫描清除动作,直至比例阀值之下。
		3.惰性过期。只有再次访问此key时才判断是否过期处理。有内存泄漏风险。
	内存淘汰策略:(当存储的key:value数据超过了配置给redis的最大内存阀值时)
		1.volatile-lru:对设置了过期时间的key执行LRU策略进行删除
		2.allkeys-lru:对所有的key执行LRU策略进行删除
		3.volatile-random:对设置了过期时间的key执行随机删除
		4.allkeys-random:对所有的key执行随机删除
		5.volatile-ttl:对设置了过期时间的key,找出剩余生存时间最少的key进行删除。
		6.noeviction:新写入操作直接拒绝并报错。
	备注常识:
		LRU策略:最近的执行命令中最少使用到的数据将被替换出局。并非总的使用概率最少,因为算法中不做全局统计。

3.redis持久化策略:

	RDB策略:指定时间间隔内将当前数据集快照写入磁盘dump.rdb文件。
		1.触发(默认):
			1分钟改1万次,
			或5分钟改10次,
			或15分钟改1次。
			或退出进程时。
		2.文件(dump.rdb)过大时可指定是否压缩
		3.特点:
			有丢失数据,易大规模数据恢复,比AOF高效。持久化时大致2倍的内存膨胀。
	AOF策略:以日志的形式来记录每个写操作,appendonly.aof文件只追加不可以改写。
		1.触发:
			每次写操作都追加日志
			每秒批量追加一次(推荐:减少的io流)
			不写
		2.文件(appendonly.aof)过大时可指定重写策略:
			此刻文件已达上次重写时2倍且大于64MB
			原理:fork一个新进程,遍历内存中的每条记录为一条set语句到新aof文件,最后替换掉久aof文件。
		3.特点:
			aof文件远大于rdb文件,有1秒内的数据丢失。
	总结:
		1.RDB和AOF可同时使用,且AOF优先于RDB。推荐搭配使用,RDB作为万一手段
		2.只做缓存使用时可都不用这两个持久化功能。

4.redis事务:(部分支持事务)

	事务执行情况:
		1.正常执行:没有错误、异常、未被篡改
		2.放弃事务:DISCARD命令
		3.全体连坐:提交的命令立马抛出检查时异常(即redis不支持命令),提交事务时全体命令不会执行。
		4.冤头债主:提交的命令在实际执行时报错(如对字符串累加操作),提交事务时只有正确的命令会执行成功。
		5.监控:如果开始事务前对某些key进行了监控,则从监控开始到提交事物的过程中它们被篡改,那么事物提交时就全体回滚。
	涉及命令:WATCH key[key ...] 在事务开启前监控某些key,直到事物提交之前若它们被篡改,则事务提交时就全体回滚。
			  UNWATCH:取消对所有key的监控。
			  MULTI:标记一个事务块的开始。
			  EXEC:执行所有事务块的命令。同时取消所有监控。
			  DISCARD:取消事务,放弃执行事务块内的所有命令。

5.redis主从复制:

	1.默认自己是主机。只有在配置文件里指定了谁(ip+port)是主机时或被哨兵监控时,自己才作为备机运行。
	2.备机不对外提供写入服务,否则会报错的。
	3.相关命令:
		slaveof IP:端口 :指定要跟随的主机地址。之后就同步主机的数据。此时自己也可以有下一个跟随的备机,串联起来。
		slaveof no one  : 停止与其它数据库的同步,自己成为一个新的独立主机。
	4.复制原理:
		第一次链接到主机时全量复制,后续增量复制。
		有复制延时。
	5.哨兵模式:
		单独启动哨兵机器,由它监控主机和备机。
		当主机宕机后,它组织备机互相选举出新主机,然后剩下的备机跟着新的主机混。
		当旧的主机修复重启后也跟着新的主机混,除非它使用slaveof no one命令来自立门户,成为一个新的独立主机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值