![](https://img-blog.csdnimg.cn/20191012115423699.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
redis
文章平均质量分 93
甜美河边的钓鱼人
田美村左岸的钓鱼人
展开
-
redis主从、哨兵、集群
redis集群首先集群是为了解决横向扩展的问题。就是当请求量很大,服务承受不住时,可以扩展机器,增加服务来应对突然增加的服务。redis集群方案有三种:1、codis2、3、RedisCluster在3.0版本后推出的方案。RedisCluster方案假设有6条数据,我们集群有3台机器,那么可以会对数据进行hash分区然后对节点取余数(分区方式:虚拟槽分区和一致性hash分区)RedisCluster集群方案是采用虚拟槽分区的方式,所有的key都会通过CRC16方法进行has原创 2021-01-31 19:37:20 · 201 阅读 · 0 评论 -
redis的持久化方式
redis有两种持久化方式,一种是全量的快照 RDB还有一种是增量的AOFRDB这种方式因为是redis服务器中某个时刻的快照副本,它不能使用IO复用的api,因为这样会阻塞正常的redis的请求。比如我7点钟触发快照保存的动作,那么那些数据就好像是在7点钟,被拍了一个照一样,然后慢慢地保存到磁盘里面去。假设保存时间是半个小时,那么保存地那部分数据就会有一部分地缺失。底层是通过fork()出一个子进程来进行数据的保存,那么父进程就可以继续接受redis的请求,提供响应。fork()出子进程后,会拷贝原创 2020-05-25 11:36:26 · 113 阅读 · 0 评论 -
redis的3大删除策略和6大淘汰策略
内存的删除策略(针对设置了过期时间的key):定时删除,惰性删除,定期删除定时删除:会为每一个设置了过期时间的key开启一个定时器,定时器一到,就会去删除对应的key (不会浪费内存,因为过期了的key是要被删除的,而这个策略会马上删除腾出更多的内存空间,但是每一个key都维护一个定时器,带来一部分的开销,cpu消耗大,如果同时过期的key太多的话,还会出现卡顿的现象)定期删除:就是每隔一段时间,就对过期了的key进行删除,节省了cpu,但是有些过期了的key会在下一个定时周期到来之前占用一部分内存原创 2020-05-24 13:15:31 · 872 阅读 · 0 评论 -
redis-查找特定前缀key
redis一开始提供了一个keys命令用来查看相应规则的key,可以pattern模式查找keys命令keys * 查看所有的key, 这个命令会阻塞redis执行其他的命令,不建议在生产使用,因为它采用的是遍历的形式,并且是redis是单线程的,顺序执行指令,当查找的key的量特别多的时候,会一直在查找,其他的命令就无法执行,导致阻塞或者超时报错等。如果是平时在学习的时候,可以使用下,方便debug:查找cjh开头的key, keys cjh*查找包含有cjh的key, keys *.原创 2020-05-24 12:47:20 · 20809 阅读 · 1 评论 -
分布式锁-redis
分布式锁的使用场景:比如公司为了实现服务一直可用,会部署多个实例,这样就可以一台一台机器的这样部署,其中一台部署着,另外一台还在运行,那么服务就是可用的,不会说一直处于服务不可用的状态。当处于这样场景的时候,如果你服务中有个定时任务的话,那么到点的时候,会触发多个实例的定时任务,也就是同一个时刻会执行多次定时任务里面的逻辑。如果任务的逻辑是不允许重复执行,那么这个时候就要加分布式锁,就是其中一台机器拿到处理的锁后,其他机器拿不到,就不进入逻辑处理的部分。在redis中,实现分布锁的指令为:SE.原创 2020-05-23 10:51:38 · 123 阅读 · 0 评论 -
redis的管道使用
1、拿指定key的不同分数段的数量(sort set结构) //拿指定key的不同分数段的数量,mins和maxs时一一对应的 //比如mins[1,100,1000]、max[99,999,2000],那么就是拿1-99,100-999,1000-2000 //各个分数段的数量,而且时按照顺序返回的,返回的类型是Long类型的,所以使用的时候 //要将我这里返回的Object类型强制...原创 2019-08-29 17:11:09 · 673 阅读 · 0 评论 -
redis sort set的使用
公司最近有个需求,就是对某个事件的证实要分多个态度,高兴(1),伤心(2),惊讶(3),愤怒(4)(后面的为态度值)用户还可以反悔,比如不小心选择了高兴,那么用户想改成伤心也是可以的。本来是想着直接在时间戳(13位)的后面加上两位用作态度,但是老大说当一个事件证实的人很多的时候,一次把所有的sort set拿出来,当数量到达几千的个的时候,怕redis承受不住,而且就算是全部拿出来,但...原创 2019-08-30 18:00:02 · 343 阅读 · 0 评论 -
redis 常用命令
redis缓存数据库基于内存进行数据的操作(默认有16个库,index从0开始)比较常用的是五种数据结构string,hash,zset,list,set切换库select index,例如:select 15 切换到redis的第15个库,返回ok表示成功1、基于key的操作,是不针对哪种数据结构的 del 删除某个key的操作,例如:redis服务器中有个key为xxx,那么...原创 2019-09-05 18:33:55 · 123 阅读 · 0 评论