redis适合什么场景



redis适合什么场景?
1、缓存
缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多。(推荐:《Redis视频教程》)
2、排行榜
很多网站都有排行榜应用的,如京东的月度销量榜单、商品按时间的上新排行榜等。Redis提供的有序集合数据类构能实现各种复杂的排行榜应用。
3、计数器
什么是计数器,如电商网站商品的浏览量、视频网站视频的播放数等。为了保证数据实时效,每次浏览都得给+1,并发量高时如果每次都请求数据库操作无疑是种挑战和压力。Redis提供的incr命令来实现计数器功能,内存操作,性能非常好,非常适用于这些计数场景。
4、分布式会话
集群模式下,在应用不多的情况下一般使用容器自带的session复制功能就能满足,当应用增多相对复杂的系统中,一般都会搭建以Redis等内存数据库为中心的session服务,session不再由容器管理,而是由session服务及内存数据库管理。
5、分布式锁
在很多互联网公司中都使用了分布式技术,分布式技术带来的技术挑战是对同一个资源的并发访问,如全局ID、减库存、秒杀等场景,并发量不大的场景可以使用数据库的悲观锁、乐观锁来实现,但在并发量高的场合中,利用数据库锁来控制资源的并发访问是不太理想的,大大影响了数据库的性能。可以利用Redis的setnx功能来编写分布式的锁,如果设置返回1说明获取锁成功,否则获取锁失败,实际应用中要考虑的细节要更多。
6、 社交网络
点赞、踩、关注/被关注、共同好友等是社交网站的基本功能,社交网站的访问量通常来说比较大,而且传统的关系数据库类型不适合存储这种类型的数据,Redis提供的哈希、集合等数据结构能很方便的的实现这些功能。
7、最新列表
Redis列表结构,LPUSH可以在列表头部插入一个内容ID作为关键字,LTRIM可用来限制列表的数量,这样列表永远为N个ID,无需查询最新的列表,直接根据ID去到对应的内容页即可。
8、消息系统
消息队列是大型网站必用中间件,如ActiveMQ、RabbitMQ、Kafka等流行的消息队列中间件,主要用于业务解耦、流量削峰及异步处理实时性低的业务。Redis提供了发布/订阅及阻塞队列功能,能实现一个简单的消息队列系统。另外,这个不能和专业的消息中间件相比。

  • redis閫傚悎浠涔堝満鏅
    绛旓細redis閫傚悎浠涔堝満鏅紵1銆缂撳瓨缂撳瓨鐜板湪鍑犱箮鏄墍鏈変腑澶у瀷缃戠珯閮藉湪鐢ㄧ殑蹇呮潃鎶锛屽悎鐞嗙殑鍒╃敤缂撳瓨涓嶄粎鑳藉鎻愬崌缃戠珯璁块棶閫熷害锛岃繕鑳藉ぇ澶ч檷浣庢暟鎹簱鐨勫帇鍔涖俁edis鎻愪緵浜嗛敭杩囨湡鍔熻兘锛屼篃鎻愪緵浜嗙伒娲荤殑閿窐姹扮瓥鐣ワ紝鎵浠ワ紝鐜板湪Redis鐢ㄥ湪缂撳瓨鐨勫満鍚堥潪甯稿銆傦紙鎺ㄨ崘锛氥奟edis瑙嗛鏁欑▼銆嬶級2銆佹帓琛屾寰堝缃戠珯閮芥湁鎺掕姒滃簲鐢ㄧ殑锛屽...
  • redis閫傚悎鍝簺搴旂敤鍦烘櫙
    绛旓細Redis鏈夎澶氬簲鐢ㄥ満鏅紝杩欎釜绠鍗曞厛鍒椾妇7涓簲鐢ㄥ満鏅細涓锛氱紦瀛樷斺旂儹鏁版嵁鐑偣鏁版嵁锛堢粡甯镐細琚煡璇紝浣嗘槸涓嶇粡甯歌淇敼鎴栬呭垹闄ょ殑鏁版嵁锛夛紝棣栭夋槸浣跨敤redis缂撳瓨锛屾瘯绔熷己澶у埌鍐掓场鐨凲PS鍜屾瀬寮虹殑绋冲畾鎬т笉鏄墍鏈夌被浼煎伐鍏烽兘鏈夌殑锛岃屼笖鐩告瘮浜巑emcached杩樻彁渚涗簡涓板瘜鐨勬暟鎹被鍨嬪彲浠ヤ娇鐢紝鍙﹀锛屽唴瀛樹腑鐨勬暟鎹篃鎻愪緵浜咥OF鍜孯DB...
  • 浜戞暟鎹簱redis鐨搴旂敤鍦烘櫙鏈鍝簺
    绛旓細浜戞暟鎹簱redis鐨勫簲鐢ㄥ満鏅湁锛缂撳瓨銆佷細璇濆瓨鍌ㄣ佸彂甯/璁㈤槄绯荤粺銆佽鏁板櫒鍜屾帓琛屾銆佸疄鏃舵暟鎹垎鏋銆1銆佺紦瀛 Redis鏈甯歌鐨勭敤閫斿氨鏄綔涓虹紦瀛樺眰锛岀敱浜嶳edis瀛樺偍鍦ㄥ唴瀛樹腑锛岃鍐欓熷害闈炲父蹇紝鍙互鏄捐憲鍑忚交鏁版嵁搴撴垨鍏朵粬鍚庣鏈嶅姟鐨勮礋杞藉帇鍔涖傞氳繃灏嗛绻佽闂殑鏁版嵁瀛樺偍鍦≧edis涓紝鍙互鍔犻熸暟鎹殑鑾峰彇锛屾彁鍗囩郴缁熺殑鍝嶅簲鎬ц兘銆...
  • Redis 閮芥湁鍝簺搴旂敤鍦烘櫙?
    绛旓細鍒嗗竷寮忛攣锛氬湪鍒嗗竷寮忔湇鍔′腑銆傚彲浠ュ埄鐢≧edis鐨剆etnx鍔熻兘鏉ョ紪鍐欏垎甯冨紡鐨勯攣锛岃櫧鐒惰繖涓彲鑳戒笉鏄お甯哥敤銆 褰撶劧杩樻湁璇稿鎺掕姒溿佺偣璧炲姛鑳介兘鍙互浣跨敤 Redis 鏉ュ疄鐜帮紝浣嗘槸 Redis 涔熶笉鏄粈涔堥兘鍙互鍋氾紝姣斿鏁版嵁閲忕壒鍒ぇ鏃讹紝涓嶉傚悎 Redis锛屾垜浠煡閬 Redis 鏄熀浜庡唴瀛樼殑锛岃櫧鐒跺唴瀛樺緢渚垮疁锛屼絾鏄鏋滀綘姣忓ぉ鐨勬暟鎹噺鐗瑰埆澶...
  • 鍒嗗竷寮 Redis 妗嗘灦鏈鍝簺搴旂敤鍦烘櫙?
    绛旓細浠ヤ笅鏄竴浜涘父瑙佺殑搴旂敤鍦烘櫙锛 - 缂撳瓨锛歊edis 鍙互鐢ㄤ綔缂撳瓨锛屾彁楂樼綉绔欒闂熷害锛岄檷浣庢暟鎹簱鍘嬪姏銆- 娑堟伅涓棿浠锛歊edis 鍙互鐢ㄤ綔娑堟伅涓棿浠讹紝鏀寔鍙戝竷璁㈤槄銆- 鍒嗗竷寮忛攣锛歊edis 鍙互鐢ㄤ綔鍒嗗竷寮忛攣锛岃В鍐冲苟鍙戠珵浜夐棶棰樸- 璁℃暟鍣細Redis 鎻愪緵鐨 incr 鍛戒护鍙互瀹炵幇璁℃暟鍣紝閫傜敤浜庣數鍟嗙綉绔欑殑娴忚閲忋佽棰戠殑鎾斁閲...
  • Redis搴旂敤鍦烘櫙?
    绛旓細Redis瀹為檯搴旂敤鍦烘櫙 1銆佹樉绀烘渶鏂扮殑椤圭洰鍒楄〃 涓嬮潰杩欎釜璇彞甯哥敤鏉ユ樉绀烘渶鏂伴」鐩紝闅忕潃鏁版嵁澶氫簡锛屾煡璇㈡鏃犵枒闂細瓒婃潵瓒婃參銆係ELECT FROM fOO WHERE ORDER BY time DESC LIMIT 10 鍦╓eb搴旂敤涓紝鈥滃垪鍑烘渶鏂扮殑鍥炲鈥濅箣绫荤殑鏌ヨ闈炲父鏅亶锛岃繖閫氬父浼氬甫鏉ュ彲鎵╁睍鎬ч棶棰樸傝繖浠や汉娌抚锛屽洜涓洪」鐩湰鏉ュ氨鏄寜杩欎釜椤哄簭琚垱寤虹殑...
  • redis鏄浠涔
    绛旓細涓夈丷edis鐨勫簲鐢ㄥ満鏅 1. 缂撳瓨锛氱敱浜嶳edis鍏锋湁蹇熻鍐欑殑鐗规э紝甯歌鐢ㄤ綔缂撳瓨灞傦紝瀛樺偍涓存椂鏁版嵁锛屾彁楂樼綉绔欐垨搴旂敤鐨勬ц兘銆2. 浼氳瘽瀛樺偍锛歊edis鍙互鐢ㄤ綔浼氳瘽瀛樺偍锛屼繚瀛樼敤鎴风殑鐘舵佷俊鎭3. 娑堟伅闃熷垪锛歊edis鏀寔鍙戝竷/璁㈤槄妯″紡锛屽彲浠ヤ綔涓虹畝鍗曠殑娑堟伅闃熷垪浣跨敤銆4. 璁℃暟鍣ㄥ簲鐢細鐢变簬鍏朵赴瀵岀殑鏁版嵁绫诲瀷鍜屽師瀛愭搷浣滅壒鎬э紝...
  • redis鏁版嵁绫诲瀷鍜屽簲鐢鍦烘櫙
    绛旓細甯哥敤鍛戒护锛歡et銆乻et銆乮ncr銆乨ecr銆乵get绛夈傚簲鐢ㄥ満鏅細瑙刱ey-value缂撳瓨搴旂敤銆傚父瑙勮鏁: 鐐硅禐鏁, 绮変笣鏁般傛弿杩帮細 hash 鏄竴涓敭鍊(key => value)瀵归泦鍚堛俁edis hash 鏄竴涓 string 绫诲瀷鐨 field 鍜 value 鐨勬槧灏勮〃锛宧ash 鐗瑰埆閫傚悎鐢ㄤ簬瀛樺偍瀵硅薄銆傚父鐢ㄥ懡浠わ細hget,hset,hgetall 绛夈傚簲鐢ㄥ満鏅細瀛樺偍閮ㄥ垎...
  • redis甯哥敤鏁版嵁缁撴瀯浠嬬粛鍜屼笟鍔″簲鐢鍦烘櫙鍒嗘瀽
    绛旓細甯歌搴旂敤鍦烘櫙 redis涓鐨刾ub/sub鍙互瀹炵幇骞挎挱鍔熻兘锛岀被浼紃ocketmq涓殑broadcast 甯歌搴旂敤鍦烘櫙 闄や簡涓婅堪鏈鍩烘湰鐨勬暟鎹粨鏋勫锛宺edis杩樻彁渚涗簡涓浜涘叾浠栫殑鏁版嵁缁撴瀯锛屾湁鐨勬槸闇瑕佸畨瑁呯浉鍏硆edis stack鏉ヤ娇鐢ㄧ殑銆俠itmap鏈川涓婅繕鏄娇鐢ㄧ殑string瀛楃涓诧紝涓嶈繃鍙互閫氳繃bit鏉ヨ繘琛屾搷浣滐紝鎶婅繖涓猭ey鐨剉alue鍊兼兂璞℃垚bit缁勬垚鐨勬暟缁勩傚父...
  • Redis鏄浠涔,鐢ㄦ潵鍋氫粈涔
    绛旓細Redis鏄竴涓猲osql鏁版嵁搴擄紝鍙互瀛樺偍key-value鍊笺傚洜涓哄叾搴曞眰瀹炵幇涓紝鏁版嵁璇诲啓鏄熀浜庡唴瀛橈紝閫熷害闈炲父蹇紝鎵浠ュ父鐢ㄤ簬缂撳瓨锛涜繘鑰屽洜鍏朵负鐙珛閮ㄧ讲鐨勪腑闂翠欢锛屽父鐢ㄤ簬鍒嗗竷寮忕紦瀛樼殑瀹炵幇鏂规銆傚父鐢ㄥ満鏅湁锛氱紦瀛樸佺鏉鎺у埗銆鍒嗗竷寮忛攣銆傝櫧鐒跺叾鏄熀浜庡唴瀛樿鍐欙紝浣嗗簳灞備篃鏈夋寔涔呭寲鏈哄埗锛涘悓鏃跺叿澶囬泦缇ゆā寮忥紱涓嶇敤鎷呭績鍏跺彲鐢ㄦс...
  • 扩展阅读:redis订阅和发布 使用场景 ... redis典型使用场景 ... 项目中redis的使用场景 ... 为什么要用redis好处 ... redis在项目中如何使用 ... redis一般用在什么场景 ... redis缺点及解决方案 ... redis面试必会6题经典 ... redis在项目中的应用场景 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网