redis

1.redis是什么?

redis是一个非关系型数据库,主要是用来解决高并发,高可用产生的大数据存储问题,它是单线程的操作。

2.redis有哪几种数据类型,分别是什么?

有五种类型:string,hash,list,set,zset

3.redis的基本操作?

字符串类型(string)get,set,mget,mset(set a 12)
散列类型(hash)hget,hset,hmset,hmget(hset hashtable a 12)
列表类型(list)push.pop,lrange(push listtable 12)
集合类型(set)(sadd settable 2)
有序集合类型(zset)(zadd zsetTable 12 11)

模糊获取key:keys *;

4.redis持久化方案:

  ①基于快照的方式,默认;

  ②基于文档追加的方式,配置:appendonly true;appendfsync everySsec;appendfilename "";

5.主备原理

1、 当从库和主库建立MS关系后,会向主数据库发送SYNC命令;
2、 主库接收到SYNC命令后会开始在后台保存快照(RDB持久化过程),并将期间接收到的写命令缓存起来;
3、 当快照完成后,主Redis会将快照文件和所有缓存的写命令发送给从Redis;
4、 从Redis接收到后,会载入快照文件并且执行收到的缓存的命令;
5、 之后,主Redis每当接收到写命令时就会将命令发送从Redis,从而保证数据的一致;
主从配置就是搞一个动态的备份;

6.集群原理

  6.1 数值存储:Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽

  ,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

  6.2 集群可用性:①节点之间使用ping-pang判断彼此的链接性,当有一半节点认为某节点挂了,该节点备用节点顶上。

           ②当有一半主节点挂掉就不可用。

7.redis雪崩和redis穿透处理方案

 缓存穿透:当在大并发情况下,首先在redis缓存中查询,查询不到会到db中查询,从而给db造成压力。

  方案一:设置布隆过滤器

  方案二:返回空值进行存储(建议)

 缓存雪崩:某一时段导致大面积缓存key失效

  方案一:redis设置主备

      redis设置缓存键的失效时间要均匀(建议)

8.redis实际项目中的使用

  Jedis

  redisTemplate

  

      

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值