② List适合经常追加数据,插入,删除数据。但随机取数效率比较低;Set适合经常地随机储存,插入,删除。但是在遍历时效率比较低。 ▍2.4.2 Set类型的应用场景 ▍2.4.3 Set类型底层原理 对于Set类型,其底层数据结构分为两种:intset和hashtable。当满足下面两个条件时使用intset存储,否则使用hashtable。
volatile-ttl:从已设置过期时间的数据中挑选将要过期的数据淘汰;适合场景:这种策略使我们可以向Redis 19.redis事务 1.事务是一个单独的隔离操作,事务在执行的过程中,不会被其他的命令打断,要么全部操作成功,要么全都失败。开启事务:multi 用queued添加数据不会添加成功,而是记录下来,事务提交exec把前面添加的数据提交,...
当对象的某个属性需要频繁修改时,不适合用string+json,因为它不够灵活,每次修改都需要重新将整个对象序列化并赋值;如果使用hash类型,则可以针对某个属性单独修改,没有序列化,也不需要修改整个对象。比如,商品的价格、销量、关注数、评价数等可能经常发生变化的属性,就适合存储在hash类型里。 (3)List的使用场景 列表...
List方案适合应用在消息最多被消费一次的场景 . 如果想要消息被重复消费,需要通过其他手段来解决,比如 一个消费者消费完消息之后,把它加入到另外一个队列的对尾,其他消费者从这个新建的队列中消费消息,这样就会造成多个消费者消费的顺序依赖,不能并行执行 在消费者消费之前,对消息进行处理,把该消息写入到若干个队列中...
database frontend java network plugins mq png redis activemq.md elasticsearch.md jmeter.md keepalived.md log4j2.md maven.md mybatis-plus.md mybatis.md netty.md nginx.md rabbitmq.md redis.md tomcat.md 一张图了解Tomcat架构.md shell
mysql 有自己缓冲层,它的作用也是用来缓存热点数据,这些数据包括索引、记录等。mysql 缓冲层是从自身出发,跟具体的业务无关。这里的缓冲策略主要是 lru。mysql 数据主要存储在磁盘当中,适合大量重要数据的存储;磁盘当中的数据一般是远大于内存当中的数据。一般业务场景的关系型数据库(mysql)是作为主要数据库的。1.1...
zset适合排行榜,Topx这样的场景 zset的底层结构是跳跃表,而与之类似的Java中的有序Set是TreeSet,使用红黑树实现的。 concurrent包里面,还有一个类叫做ConcurrentSkipListMap,从它的名字就可以看出来,也是用跳跃表实现的,这个和zset最像。 zset中能存放多少条记录?线上有没有有说服力的数据?