[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:database\u002Fredis-cluster-sharding":4,"config":214},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":115,"samples":129},"database","Database","","redis-cluster-sharding","Redis Cluster Sharding","en",75,2475,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,91,94,97,100,103,106,109,112],{"key":19,"name":20,"count":11},"backup-recovery","Backup Recovery",{"key":22,"name":23,"count":11},"data-modeling","Data Modeling",{"key":25,"name":26,"count":11},"indexing","Indexing",{"key":28,"name":29,"count":11},"mongodb-aggregation","Mongodb Aggregation",{"key":31,"name":32,"count":11},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":34,"name":35,"count":11},"mongodb-operations","Mongodb Operations",{"key":37,"name":38,"count":11},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":40,"name":41,"count":11},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":43,"name":44,"count":11},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":46,"name":47,"count":11},"mysql-indexes","Mysql Indexes",{"key":49,"name":50,"count":11},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":52,"name":53,"count":11},"mysql-operations","Mysql Operations",{"key":55,"name":56,"count":11},"mysql-query-optimization","Mysql Query Optimization",{"key":58,"name":59,"count":11},"mysql-replication-scaling","Mysql Replication Scaling",{"key":61,"name":62,"count":11},"mysql-types-constraints","Mysql Types Constraints",{"key":64,"name":65,"count":11},"nosql-models","Nosql Models",{"key":67,"name":68,"count":11},"performance-tuning","Performance Tuning",{"key":70,"name":71,"count":11},"pg-indexes","Pg Indexes",{"key":73,"name":74,"count":11},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":76,"name":77,"count":11},"pg-operations","Pg Operations",{"key":79,"name":80,"count":11},"pg-query-planning","Pg Query Planning",{"key":82,"name":83,"count":11},"pg-transactions-locking","Pg Transactions Locking",{"key":85,"name":86,"count":11},"pg-types-constraints","Pg Types Constraints",{"key":88,"name":89,"count":11},"query-optimization","Query Optimization",{"key":8,"name":9,"count":11},{"key":92,"name":93,"count":11},"redis-data-structures","Redis Data Structures",{"key":95,"name":96,"count":11},"redis-expiration-eviction","Redis Expiration Eviction",{"key":98,"name":99,"count":11},"redis-persistence","Redis Persistence",{"key":101,"name":102,"count":11},"redis-replication-sentinel","Redis Replication Sentinel",{"key":104,"name":105,"count":11},"redis-transactions-scripting","Redis Transactions Scripting",{"key":107,"name":108,"count":11},"replication-scaling","Replication Scaling",{"key":110,"name":111,"count":11},"security-access","Security Access",{"key":113,"name":114,"count":11},"transactions-isolation","Transactions Isolation",[116,120,123,126],{"key":117,"name":118,"count":119},"mongodb","MongoDB",450,{"key":121,"name":122,"count":119},"mysql","MySQL",{"key":124,"name":125,"count":119},"postgresql","PostgreSQL",{"key":127,"name":128,"count":119},"redis","Redis",[130,148,161,174,187,200],{"id":131,"topic":9,"difficulty":132,"body":133,"options":134,"correct_key":139,"explanation":147},"019f89ea-055c-775e-9aa1-db756b8fbd5a",1,"How many hash slots does Redis Cluster divide its keyspace into?",[135,138,141,144],{"key":136,"text":137},"a","1024",{"key":139,"text":140},"b","16384",{"key":142,"text":143},"c","65536",{"key":145,"text":146},"d","256","Redis Cluster splits the keyspace into 16384 hash slots; each master node owns a subset of these slots. 1024 (a), 65536 (c), and 256 (d) are not the actual slot count.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":136,"explanation":160},"019f89ea-056c-7618-935d-0fff400cea05","Which hash function does Redis Cluster use to map a key to a hash slot?",[152,154,156,158],{"key":136,"text":153},"CRC16",{"key":139,"text":155},"MD5",{"key":142,"text":157},"SHA-1",{"key":145,"text":159},"MurmurHash","Redis Cluster computes CRC16(key) mod 16384 to determine the slot. MD5 (b), SHA-1 (c), and MurmurHash (d) are not used for this purpose in Redis Cluster.",{"id":162,"topic":9,"difficulty":132,"body":163,"options":164,"correct_key":142,"explanation":173},"019f89ea-056f-735f-84db-22ee9541b818","In Redis Cluster, what is a hash tag used for?",[165,167,169,171],{"key":136,"text":166},"To encrypt keys before hashing",{"key":139,"text":168},"To mark a key as read-only across replicas",{"key":142,"text":170},"To force multiple keys into the same hash slot",{"key":145,"text":172},"To give a key a human-readable alias","A hash tag (the part of a key inside `{}`) forces the whole key to hash based only on that substring, so related keys sharing the same tag land in the same slot — needed for multi-key operations. It has nothing to do with encryption (a), read-only marking (b), or aliasing (d).",{"id":175,"topic":9,"difficulty":132,"body":176,"options":177,"correct_key":145,"explanation":186},"019f89ea-0571-722b-8a30-34bde97f7f9f","What error does Redis Cluster return when a multi-key command touches keys that map to different hash slots?",[178,180,182,184],{"key":136,"text":179},"NOSLOT",{"key":139,"text":181},"WRONGTYPE",{"key":142,"text":183},"CLUSTERDOWN",{"key":145,"text":185},"CROSSSLOT","CROSSSLOT is returned when a command like MSET or a multi-key operation references keys hashing to different slots, since such an operation can't be routed atomically to a single node. WRONGTYPE (b) is for type mismatches, CLUSTERDOWN (c) is for cluster-wide unavailability, and NOSLOT (a) is not a real Redis error.",{"id":188,"topic":9,"difficulty":132,"body":189,"options":190,"correct_key":139,"explanation":199},"019f89ea-0573-722b-b2d8-aff5f6fd2e49","In Redis Cluster, how do nodes discover each other's state and topology changes?",[191,193,195,197],{"key":136,"text":192},"Through a shared external ZooKeeper ensemble",{"key":139,"text":194},"Through a gossip protocol over a dedicated cluster bus port",{"key":142,"text":196},"Through periodic DNS re-resolution",{"key":145,"text":198},"Through a centralized configuration node","Redis Cluster nodes exchange cluster state via a gossip protocol on the cluster bus port, with no external coordinator. By default, the cluster bus port is the client port plus 10000, but it can be set explicitly with the `cluster-port` configuration. Redis Cluster does not depend on ZooKeeper (a), DNS polling (c), or a single centralized config node (d) — it is fully decentralized.",{"id":201,"topic":9,"difficulty":202,"body":203,"options":204,"correct_key":136,"explanation":213},"019f89ea-0578-7cd4-8402-df8db1a3b2a8",2,"A client issues `MSET user:1 alice user:2 bob` against Redis Cluster and gets a CROSSSLOT error. What is the most likely cause?",[205,207,209,211],{"key":136,"text":206},"`user:1` and `user:2` hash to different slots",{"key":139,"text":208},"MSET is not supported at all in cluster mode",{"key":142,"text":210},"The cluster is currently in a failover state",{"key":145,"text":212},"The keys already exist with a different data type","Without a shared hash tag, `user:1` and `user:2` can hash to different slots (and thus different nodes), and MSET requires all keys in the same slot to execute atomically on one node — hence CROSSSLOT. MSET is supported in cluster mode when slots align (b), this isn't a failover-specific error (c), and type mismatches produce WRONGTYPE, not CROSSSLOT (d).",{"fields":215,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[216,241,261,278,302,315,324,343,365,372,378,385],{"key":217,"name_tr":218,"name_en":218,"sort":132,"specializations":219},"backend","Backend",[220,223,226,229,232,235,238],{"key":221,"name":222,"field":217},"general","Genel",{"key":224,"name":225,"field":217},"go","Go",{"key":227,"name":228,"field":217},"python","Python",{"key":230,"name":231,"field":217},"java","Java",{"key":233,"name":234,"field":217},"csharp","C#\u002F.NET",{"key":236,"name":237,"field":217},"nodejs","Node.js",{"key":239,"name":240,"field":217},"php","PHP",{"key":242,"name_tr":243,"name_en":243,"sort":202,"specializations":244},"frontend","Frontend",[245,246,249,252,255,258],{"key":221,"name":222,"field":242},{"key":247,"name":248,"field":242},"javascript","JavaScript",{"key":250,"name":251,"field":242},"typescript","TypeScript",{"key":253,"name":254,"field":242},"react","React",{"key":256,"name":257,"field":242},"vue","Vue",{"key":259,"name":260,"field":242},"angular","Angular",{"key":262,"name_tr":263,"name_en":263,"sort":264,"specializations":265},"fullstack","Fullstack",3,[266,267,268,269,270,271,272,273,274,275,276,277],{"key":221,"name":222,"field":262},{"key":224,"name":225,"field":217},{"key":227,"name":228,"field":217},{"key":230,"name":231,"field":217},{"key":233,"name":234,"field":217},{"key":236,"name":237,"field":217},{"key":239,"name":240,"field":217},{"key":247,"name":248,"field":242},{"key":250,"name":251,"field":242},{"key":253,"name":254,"field":242},{"key":256,"name":257,"field":242},{"key":259,"name":260,"field":242},{"key":279,"name_tr":280,"name_en":280,"sort":281,"specializations":282},"devops-cloud","DevOps \u002F Cloud",4,[283,284,287,290,293,296,299],{"key":221,"name":222,"field":279},{"key":285,"name":286,"field":279},"aws","AWS",{"key":288,"name":289,"field":279},"gcp","GCP",{"key":291,"name":292,"field":279},"azure","Azure",{"key":294,"name":295,"field":279},"kubernetes","Kubernetes",{"key":297,"name":298,"field":279},"terraform","Terraform",{"key":300,"name":301,"field":279},"linux","Linux",{"key":303,"name_tr":304,"name_en":304,"sort":305,"specializations":306},"ai-engineer","AI Engineer",5,[307,308,309,312],{"key":221,"name":222,"field":303},{"key":227,"name":228,"field":303},{"key":310,"name":311,"field":303},"llm-rag","LLM\u002FRAG",{"key":313,"name":314,"field":303},"mlops","MLOps",{"key":5,"name_tr":316,"name_en":6,"sort":317,"specializations":318},"Veritabanı",6,[319,320,321,322,323],{"key":221,"name":222,"field":5},{"key":124,"name":125,"field":5},{"key":121,"name":122,"field":5},{"key":117,"name":118,"field":5},{"key":127,"name":128,"field":5},{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"mobile","Mobil","Mobile",7,[330,331,334,337,340],{"key":221,"name":222,"field":325},{"key":332,"name":333,"field":325},"ios-swift","iOS (Swift)",{"key":335,"name":336,"field":325},"android-kotlin","Android (Kotlin)",{"key":338,"name":339,"field":325},"flutter","Flutter",{"key":341,"name":342,"field":325},"react-native","React Native",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"security","Güvenlik","Security",8,[349,350,353,356,359,362],{"key":221,"name":222,"field":344},{"key":351,"name":352,"field":344},"appsec","AppSec",{"key":354,"name":355,"field":344},"offensive-pentest","Offensive \u002F Pentest",{"key":357,"name":358,"field":344},"cloud-security","Cloud Security",{"key":360,"name":361,"field":344},"devsecops","DevSecOps",{"key":363,"name":364,"field":344},"blue-team-incident","Blue Team \u002F Incident",{"key":366,"name_tr":367,"name_en":368,"sort":369,"specializations":370},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[371],{"key":221,"name":222,"field":366},{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":221,"name":222,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":221,"name":222,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":221,"name":222,"field":386},[14,15,16],{"junior":393,"mid":395,"senior":396},{"questions":394,"median_sec":3},20,{"questions":394,"median_sec":3},{"questions":394,"median_sec":3},[398,10],"tr",[400,401],"google","github",21750,true]