7.5 redis总结

Redis
NoSQL Not Only SQL
存储 内存
有数据库的概念,默认16个数据库
没有表的概念,直接key value

类型:
String 字符串 数字 BitMap
--set
--get
--mset
--mget
--incr incrBy incrByFloat
--desc descBy
--setBit
--getBit
--bitCount
List 有序
--lPush RPush
--LPOP RPOP RPOPLPUSH
--LRange 从左到右index从0开始,从右到左-1开始,取全部 0 -1
--LLen
Set 无序 去重
--sadd
--srem
--srandmembers
--smembers
--scard
Hash field value
--hset
--hget
--hgetall
SortedSet 去重 有序 元素上面有对应的score,默认是升序
--zrange
--zrevrange 0 10

持久化
RDB 直接落地的就是数据本身 dump.rdb
可以手动使用命令让它来落地
save 会阻塞,其实就是Sever停止对外读写服务,专门来立刻做这个落地RDB
bgsave 不会阻塞,其实它另起一个线程fork一个子线程来做存储RDB,原来的读写服务不受影响
在配置文件里面
我们可以配置策略,来让它自动的进行持久化
自动持久化其实它背后使用的bgsave

save 60 10000
如果配置这条策略,意味着在60秒内,有10000个key有所变动,就会持久化
如果我们只使用RDB持久化,在落地的间隔里面宕机的话,那最新的内存里面的数据就丢失了
那这个是不是个问题?
it depends,分情况,看你把redis做什么用

AOF
是把过程记录下来,持久化的都是一些操作命令
默认是不开启的
如果我们开启了AOF,是否意味着一条数据都不会丢了?
不是,原因就是AOF也可以配置策略!
默认 everysec 每秒会让系统去把缓存里面的数据往外去写
always 每条命令操作完之后,都让系统去把缓存里面的数据往外写
no redis不主动让系统去把缓存里面的数据往外写,等着系统自己去满了溢写

AOF重写
为什么要有重写?
减少数据量,因为不重写的话,AOF这个就越来越大,AOF重写会看两个东西
首先增长的量是否达到了你配置的参数大写,默认64MB
其次增长的量是否达到了原来大写的一定的比例,100%

集群
为什么要有集群?
提高性能?!
以前一台机器干的事情,现在可以分成多台并行来进行读写!
一个数据库,或者一个redis实例有默认的连接的数量,
一台机器,(CPU MEMORY 网络带宽IO)
提高稳定性?!
一台挂了,还有副本,就可以防止数据的丢失,尤其在redis这个地方是把数据存内存的!
有些时候一台机器连不上了,并不是真的宕机了,有可能是网络不好,也有可能卡了,导致没有响应,
那如果是集群的话,连不上这台就可以去连另外一台,如果过了一定时间主还是连不上了
就会通过多个实例直接的通信选举出新的主

集群的方式:
1,主从复制
默认启动一个Redis实例是主的角色,6379,redis-server,这个脚本来启动实例
通过3种方式可以让一个主角色变成从的角色,slaveof masterip masterport
1,配置文件写死slaveof masterip masterport,通过redis-server redis.conf来启动
2,通过redis-server启动的时候加上slaveof masterip masterport
3,进入客户端redis-cli,执行slaveof masterip masterport

主从复制解决了什么问题?
解决了读数据的负载问题,也可以做读写分离
主从复制还存在主的单点问题,写的问题,也包括主挂了咋办?

2,哨兵的机制 sentinel
所谓的哨兵其实也是一个redis实例,所谓的实例也就是会启动一个进程
这个进程去连接主和N个从,当一个主挂了,可以自动提升一个从作为主
Sentinel可以有多个,多个两两相连,选举从变成主

引入哨兵的机制解决了什么问题?
解决了主的高可用!
但是写还是单点

3,Twemproxy
这个机制是为了解决写的单点问题!
其实就是分片,sharding,就是有点像MySQL里面的水平分表

代理这个时候反而变成了一个单点问题

以上讲的3种集群模式,都是在redis 2的版本基础上
当然redis 3的版本也支持以上集群模式!

自带的集群
最后我们操作的实例的时候使用了6个Redis实例!
3个主,3个从,每个数据除了它自己还有一个副本
自带的集群包含了上面Redis 2里面几种集群的优点!
缺点是两两节点都要互相通信!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值