深圳网站排名优化团队,哪个网站做的效果图好,竞价托管开户,如何查看域名是否备案Redis支持五种数据类型1、string是redis最基本的类型#xff0c;你可以理解成与Memcached一模一样的类型#xff0c;一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类… Redis支持五种数据类型1、string是redis最基本的类型你可以理解成与Memcached一模一样的类型一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型一个键最大能存储512MB。2、Redis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表hash特别适合用于存储对象。3、Redis 列表是简单的字符串列表按照插入顺序排序。你可以添加一个元素导列表的头部左边或者尾部右边。4、Redis的Set是string类型的无序集合。集合是通过哈希表实现的所以添加删除查找的复杂度都是O(1)。5、Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。缓存穿透、缓存击穿、缓存雪崩1、缓存穿透是指缓存和数据库中都没有的数据而用户不断发起请求。由于缓存是不命中时被动写的并且出于容错考虑如果从存储层查不到数据则不写入缓存这将导致这个不存在的数据每次请求都要到存储层去查询失去了缓存的意义。在流量大时可能DB就挂掉了要是有人利用不存在的key频繁攻击我们的应用这就是漏洞。如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者攻击会导致数据库压力过大。2、 缓存击穿是指缓存中没有但数据库中有的数据一般是缓存时间到期这时由于并发用户特别多同时读缓存没读到数据又同时去数据库去取数据引起数据库压力瞬间增大造成过大压力。3、 缓存雪崩是指缓存中数据大批量到过期时间而查询数据量巨大引起数据库压力过大甚至down机。和缓存击穿不同的是 缓存击穿指并发查同一条数据缓存雪崩是不同数据都过期了很多数据都查不到从而查数据库。内存淘汰机制1、noeviction: 当内存不足以容纳新写入数据时新写入操作会报错这个一般没人用吧实在是太恶心了。2、allkeys-lru当内存不足以容纳新写入数据时在键空间中移除最近最少使用的 key这个是最常用的。3、allkeys-random当内存不足以容纳新写入数据时在键空间中随机移除某个 key这个一般没人用吧为啥要随机肯定是把最近最少使用的 key 给干掉啊。4、volatile-lru当内存不足以容纳新写入数据时在设置了过期时间的键空间中移除最近最少使用的 key这个一般不太合适。5、volatile-random当内存不足以容纳新写入数据时在设置了过期时间的键空间中随机移除某个 key。6、volatile-ttl当内存不足以容纳新写入数据时在设置了过期时间的键空间中有更早过期时间的 key 优先移除。持久化1、RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。在默认情况下 Redis 将数据库快照保存在名字为 dump.rdb的二进制文件中。在 Redis 运行时 RDB 程序将当前内存中的数据库快照保存到磁盘文件中 在 Redis 重启动时 RDB 程序可以通过载入 RDB 文件来还原数据库的状态。2、快照功能RDB并不是非常耐久durable如果 Redis 因为某些原因而造成故障停机 那么服务器将丢失最近写入、且仍未保存到快照中的那些数据。从 1.1 版本开始 Redis 增加了一种完全耐久的持久化方式AOF 持久化。你可以在配置文件中打开AOF方式:appendonly yes打开AOF后 每当 Redis 执行一个改变数据集的命令时比如 SET 这个命令就会被追加到 AOF 文件的末尾。这样的话 当 Redis 重新启时 程序就可以通过重新执行 AOF 文件中的命令来达到重建数据集的目的。多线程Redis 的多线程部分只是用来处理网络数据的读写和协议解析执行命令仍然是单线程顺序执行。