推荐理由:美丽说app官方版是一款穿搭分享软件,这里有海量穿搭达人在线分享他们的潮流装扮以及时尚造型,你可以在这里看到他人分享的穿搭、美妆、美食、好物等变美资讯,然后在潜移默化中自己就越来越美了,还可以与小伙伴们在
推荐理由:衣蜜纯服装app最新版是一款超好用的手机线上穿搭学习平台,在这里用户可以通过软件查看各种SHOW,精美穿搭为你推荐,还有衣帽间可以自由选择,打造属于你的美,赶快下载软件体验吧!
推荐理由:变装派对app最新版是一个学穿搭的软件,这里有最新的潮流资讯,今年上新单品是什么?最流行的服装穿搭是什么样的?有时尚大咖教你穿搭、潮人穿衣方法推荐,让你穿衣不踩雷,还有化妆教学,适合小仙女使用,还在等什么
推荐理由:男衣邦穿衣搭配App官方版是为中国男人准备的时尚穿搭软件,拥有权威的穿衣顾问服务,高效精准沟通,改变你的整体形象,还有型男改造计划,全方位的改造你的形象,让你秒变型男,各种流行穿搭推荐爱你,提高自己的时尚
推荐理由:快鸟穿搭app安卓版是一款非常不错的潮流穿搭软件,app中拥有各种风格的穿搭攻略,使用人群非常广泛,大家能够在这里随意享受到优质的穿搭教学,如果你正在苦于穿搭方面的事情,就来下载吧。
推荐理由:搭啦app手机版是一款专门为广大女性用户打造的时尚服务软件,app中能够为大家提供海量的时尚资讯,还有强大的穿衣搭配指南功能,同时还会为大家提供海量的服饰商品,喜欢的话就来下载吧。
推荐理由:小红书app是一款超火的纪录生活的软件,时常想买东西但是不知道适不适合自己?来小红书看看博主以及其他小伙伴们的使用感受吧,每天都会有大量的用户分享出自己的购买体验,时尚穿搭、美容美妆、休闲娱乐、吃喝玩乐等
推荐理由:哇凹app手机版是一款非常优质的时尚穿搭平台,各种热门穿搭都会在上面进行分享,精彩内容随时在线看,你可以在这里学习尝试不同风格,找到更适合自己的风格,赶快下载使用看看吧!
推荐理由:穿搭有范app安卓版是一款深受年轻人喜欢的穿搭软件,为大家提供了各种潮流的流行的穿搭方式,让你可以轻松的改变自己的形象,成为充满时尚品味和穿搭品味的潮流达人,在穿搭有范还会根据用户自身的特点为你定制专属穿
推荐理由:HOOD最新版是一款深受用户喜爱的手机潮流穿搭交流平台,软件中用购物、试穿、社交等功能,支持用户将自己的穿搭分享出去,用户还可以在软件中试穿各种类型的服装,自由搭配,买衣服在线就有参考意义,喜欢的小伙伴快
是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key/Value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器
内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
数据类型、基本操作和配置
持久化和复制,RDB、AOF
Select命令切换数据库
Dbsize查看当前数据库的key的数量
所有的 List 命令都是 L 开头的
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。存储部分变更的数据,如用户信息等。
Redis 的 GEO 特性在 Redis 3.2 版本中推出, 这个功能可以将用户给定的地理位置信息储存起来, 并对这些信息进行操作。来实现诸如附近位置、摇一摇这类依赖于地理位置信息的功能。geo的数据类型为zset。
GEO没有提供删除成员的命令,但是因为GEO的底层实现是zset,所以可以借用zrem命令实现对地理位置信息的删除.
可以用来设置上班打卡与否,账号登录与否,等等
redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。
批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行!
Redis不保证原子性:
Redis中,单条命令是原子性执行的,但事务不保证原子性,且没有回滚。事务中任意命令执行失败,其余的命令仍会被执行。
Redis事务的三个阶段:
Redis事务相关命令:
若在事务队列中存在命令性错误(类似于java编译性错误),则执行EXEC命令时,所有命令都不会执行
若在事务队列中存在语法性错误(类似于java的1/0的运行时异常),则执行EXEC命令时,其他正确命令会被执行,错误命令抛出异常。
开启事务,当开启两个线程同时操作一个数据,当线程一的数据还没提交,线程二已经操作修改了,那么事务提交时,就会报错,因为我们提前加上了watch监控器。
2、远程连接redis测试
(直接用RedisTemplate操作Redis,需要很多行代码,因此直接封装好一RedisUtils,这样写代码更方便点。这个RedisUtils交给Spring容器实例化,使用时直接注解注入。)
1、配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
2、对 大小写 不敏感
和Spring配置文件类似,可以通过includes包含,redis.conf 可以作为总文件,可以包含其他文件!
Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。
Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。
Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量,环境变量,程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程。
1、配置文件中默认的快照配置,建议多用一台机子作为备份,复制一份 dump.rdb
3、执行flushall命令,也会产生 dump.rdb 文件,但里面是空的,无意义 !
4、退出的时候也会产生 dump.rdb 文件!
1、将备份文件(dump.rdb)移动到redis安装目录并启动服务即可
1、适合大规模的数据恢复
2、对数据完整性和一致性要求不高
1、在一定间隔时间做一次备份,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改
2、Fork的时候,内存中的数据被克隆了一份,大致2倍的膨胀性需要考虑。
以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作
AOF 采用文件追加方式,文件会越来越大,为避免出现此种情况,新增了重写机制,当AOF文件的大小超过所设定的阈值时,Redis 就会启动AOF 文件的内容压缩,只保留可以恢复数据的最小指令集,可以使用命令 bgrewriteaof !
AOF 文件持续增长而过大时,会fork出一条新进程来将文件重写(也是先写临时文件最后再rename),遍历新进程的内存中数据,每条记录有一条的Set语句。重写aof文件的操作,并没有读取旧的aof文件,这点和快照有点类似!
Redis会记录上次重写时的AOF大小,默认配置是当AOF文件大小是上次rewrite后大小的已被且文件大于64M的触发。
1、每修改同步:appendfsync always 同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差但数据完整性比较好
2、每秒同步: appendfsync everysec 异步操作,每秒记录 ,如果一秒内宕机,有数据丢失
1、相同数据集的数据而言,aof 文件要远大于 rdb文件,恢复速度慢于 rdb。
2、Aof 运行效率要慢于 rdb,每秒同步策略效率较好,不同步效率和rdb相同。
1、RDB 持久化方式能够在指定的时间间隔内对你的数据进行快照存储
2、AOF 持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以Redis 协议追加保存每次写的操作到文件末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大。
3、只做缓存,如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化
4、同时开启两种持久化方式
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。
默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
主从复制的作用主要包括:
1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
2、故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
3、负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
4、高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
准备工作:我们配置主从复制,至少需要三个,一主二从!配置三个客户端!
2、指定端口 6379,依次类推
上面都配置完毕后,3个服务通过3个不同的配置文件开启,我们的准备环境就OK 了!
1、默认三个都是Master 主节点
3、在主机设置值,在从机都可以取到!从机不能写值!
主机宕机:如果主机宕机了,那么从机依然连接到主机,就是没有写的操作了,当主机重新连接,那么从机还可以继续取到主机里写的值。
从机宕机:但是当从机断开了,那么主机中断开了这个从机,重新连接后,也没有主从效应了。但是从新设置它的主机,那么还是可以取到主机的值。
一主二从的情况下,如果主机断了,从机可以使用命令 SLAVEOF NO ONE 将自己改为主机!这个时候其余的从机链接到这个节点。对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。
主机再回来,也只是一个光杆司令了,从机为了正常使用跑到了新的主机上!
Master 接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。
全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
增量复制:Master 继续将新的所有收集到的修改命令依次传给slave,完成同步
但是只要是重新连接master,一次完全同步(全量复制)将被自动执行
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵) 架构来解决这个问题。
谋朝篡位的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。
假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover[故障转移]操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。
3、配置哨兵,填写内容sentinel monitor 被监控主机名字 127.0.0.1 6379 1上面最后一个数字1,表示主机挂掉后slave投票看让谁接替成为主机,得票数多少后成为主机
9、问题:如果之前的master 重启回来,会不会双master 冲突? 之前的回来只能做小弟了
哨兵集群模式是基于主从模式的,所有主从的优点,哨兵模式同样具有。
主从可以切换,故障可以转移,系统可用性更好。
哨兵模式是主从模式的升级,系统更健壮,可用性更高。
Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。
实现哨兵模式的配置也不简单,甚至可以说有些繁琐
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。
另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。
缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。
布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免了对底层存储系统的查询压力;
当存储层不命中后,即使返回的空对象也将其缓存起来,同时会设置一个过期时间,之后再访问这个数据将会从缓存中获取,保护了后端数据源;
但是这种方法会存在两个问题:
1、如果空值能够被缓存起来,这就意味着缓存需要更多的空间存储更多的键,因为这当中可能会有很多的空值的键;
2、即使对空值设置了过期时间,还是会存在缓存层和存储层的数据会有一段时间窗口的不一致,这对于需要保持一致性的业务会有影响。
这里需要注意和缓存击穿的区别,缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。
当某个key在过期的瞬间,有大量的请求并发访问,这类数据一般是热点数据,由于缓存过期,会同时访问数据库来查询最新数据,并且回写缓存,会导使数据库瞬间压力过大。
从缓存层面来看,没有设置过期时间,所以不会出现热点 key 过期后产生的问题。
分布式锁:使用分布式锁,保证对于每个key同时只有一个线程去查询后端服务,其他线程没有获得分布式锁的权限,因此只需要等待即可。这种方式将高并发的压力转移到了分布式锁,因此对分布式锁的考验很大。
缓存雪崩,是指在某一个时间段,缓存集中过期失效。
产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中的放入了缓存,假设缓存一个小时。那么到了凌晨一点钟的时候,这批商品的缓存就都过期了。而对这批商品的访问查询,都落到了数据库上,对于数据库而言,就会产生周期性的压力波峰。于是所有的请求都会达到存储层,存储层的调用量会暴增,造成存储层也会挂掉的情况。
其实集中过期,倒不是非常致命,比较致命的缓存雪崩,是缓存服务器某个节点宕机或断网。因为自然形成的缓存雪崩,一定是在某个时间段集中创建缓存,这个时候,数据库也是可以顶住压力的。无非就是对数据库产生周期性的压力而已。而缓存服务节点的宕机,对数据库服务器造成的压力是不可预知的,很有可能瞬间就把数据库压垮。
这个思想的含义是,既然redis有可能挂掉,那我多增设几台redis,这样一台挂掉之后其他的还可以继续工作,其实就是搭建的集群。
这个解决方案的思想是,在缓存失效后,通过加锁或者队列来控制读数据库写缓存的线程数量。比如对某个key只允许一个线程查询数据和写缓存,其他线程等待。
数据加热的含义就是在正式部署之前,我先把可能的数据先预先访问一遍,这样部分可能大量访问的数据就会加载到缓存中。在即将发生大并发访问前手动触发加载缓存不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀。
现在休闲风的穿搭,在我们生活中占据重要的位置,舒适是我们主打的风格,绽放个性魅力,应付日常穿搭那肯定是绰绰有余,还能让你走在时尚的前沿。在家就不要自己为难自己了,换上舒适休闲风穿搭,乖乖呆在家追剧,它难道不快乐吗?
你的头号选择就是换上衬衫,当然衬衫不光短的才时尚,长衬衫让你拥有不一样的魅力,绽放个性魅力。小西装不仅仅只适用于正式的场合,休闲风一样少不了它的存在。想要更加舒适随心所欲,那就换上小黑裤。
就算是休闲风的穿搭那也不能乱来,穿搭一定要有小技巧,不然怎么能“艳压全场”呢?内场外短,就是穿搭的小妙招,没试过的小仙女不心动吗?黑色的毛衣里面依然是灰色的毛衣,但是你的层次感瞬间就出来了。米白色的阔腿裤, 魅力不比小黑裤小。
要想将休闲风演绎到极致,可以借助毛衣,深蓝色的毛衣,像是在向我们倾诉它的深邃,穿上身舒适感肯定满分。舒适休闲风穿搭,你还可以试试黑色的阔腿裤,为你平添了个性的色彩。要想舒适到底,那就偷偷塞秋裤,冬天保暖的小妙招。
尝试低调的色彩,可以穿出高级感,还为你洗衣服减轻了负担。半身裙也投入了休闲风的行列中,让你走在时尚的前沿。想要彻底张扬个性,就是裙子里面塞裤子了,是妥妥的休闲风,喜欢这种风格的小仙女们,还不快学起来。
帅帅的休闲风,也是我非常喜欢的一种,低调但是不失个性。千万不能对休闲装马虎,万一你哪天出门偶遇到男神,而你却是一副穿睡衣的模样,那不是错失良机了。叠穿是我最喜欢的穿法,让整个人更加有层次感,最常见的就是衬衫和小西装的叠穿,让你的穿搭更上一层楼。
对于穿搭我有说不尽的话,黑白配的经典组合,永不过时,还美艳不可方物。舒适休闲风穿搭,白色的长衬衫和黑色的针织开衫,给我说不清,道不明的休闲味道。一年四季,都要穿阔腿裤,非常舒适,想要更加高级,就加上一双短靴。
冬天的保暖措施一定要做到位,羽绒服肯定是必不可少的,想要追求舒适感,但是拒绝臃肿感,那就换上羽绒服。黑色的长裙既不会“喧宾夺主”,还美得很低调。
重复了无数次,这个冬天一定要穿毛衣,杏色和白色的组合,绽放个性魅力,就是我心目中最强的休闲穿搭。想要保暖到底,没有围巾怎么能行呢?温暖的围巾给你这个冬天不一样的温度。
小仙女们日常的休闲风穿搭,你们看明白了没有?不能三番五次给自己“丢人”了,用最舒适的休闲穿搭,助力你走在时尚的前沿。
声明:文字原创,图片来自网络,如有侵权,请联系我们删除,谢谢。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。