1、setbit bitmap 99 1:标识n个事物的状态(0/1)。
2、数据结构优先采用hash:当hash中fields较少时,底层的物理存储使用ziplist压缩方式存储
3、zset:每个元素有一个score值,其大小决定元素顺序。
4、List、Hash、Set和Zset的元素个数不要超过5000个。
5、del删除一个key,通常认为是O(1)操作。删除一个String类型的key为 O(1),而set、list、hash等都是O(N),N是存储的数据个数。
6、MSET 1 str1 2 str2:多命令参数是原子性的,可以实现多个key的原子性操作。
7、使用pipeline:
a、不是原子性操作,不能保证所有命令执行成功。
b、pipeline可以把不同的命令操作打包在一起,建议单次pipeline的命令个数在50到300之间
8、scan:增量迭代读取大对象,可以取代一些O(N)操作,避免redis长时间被单个slow query阻塞
a、scan命令用于迭代当前database中的所有key,可以优化keys *pattern*操作
b、sscan命令用于迭代set中的key中的元素,可以优化smembers操作。
c、hscan命令用于迭代hash中的所有fields和对应的value,优化hgetall和hkeys操作。
d、zscan命令用于迭代sorted set中的元素(member and score)。
时间: 2024-10-19 02:13:51