[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:database\u002Fredis-persistence":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-persistence","Redis Persistence","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,93,96,99,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":91,"name":92,"count":11},"redis-cluster-sharding","Redis Cluster Sharding",{"key":94,"name":95,"count":11},"redis-data-structures","Redis Data Structures",{"key":97,"name":98,"count":11},"redis-expiration-eviction","Redis Expiration Eviction",{"key":8,"name":9,"count":11},{"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,175,188,201],{"id":131,"topic":9,"difficulty":132,"body":133,"options":134,"correct_key":139,"explanation":147},"019f89ea-05dc-73b3-afb3-0eae561b1846",1,"What is RDB persistence in Redis?",[135,138,141,144],{"key":136,"text":137},"a","A log of every write command appended to a file as it happens",{"key":139,"text":140},"b","A binary point-in-time snapshot of the dataset",{"key":142,"text":143},"c","A replication mechanism that copies data to a replica node in real time",{"key":145,"text":146},"d","An in-memory-only mode where no data is ever written to disk","RDB (Redis Database) persistence produces a compact, point-in-time binary snapshot of the whole dataset. It is not an append-only command log (that's AOF, option a), not replication (option c), and it does write to disk, so option d is wrong.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":142,"explanation":160},"019f89ea-05dc-7d36-b040-eec80ebacfa3","What is AOF (Append Only File) persistence in Redis?",[152,154,156,158],{"key":136,"text":153},"A binary snapshot of the dataset taken every hour by default",{"key":139,"text":155},"A feature that keeps a replica's data in sync with the master",{"key":142,"text":157},"A replayable log of received write operations",{"key":145,"text":159},"A compression format applied to RDB files to reduce disk usage","AOF logs every write operation as it is received; on restart, Redis replays that log to reconstruct the dataset. It is not a periodic snapshot (that's RDB, option a), not replication (option b), and not a compression scheme (option d).",{"id":162,"topic":9,"difficulty":163,"body":164,"options":165,"correct_key":136,"explanation":174},"019f89ea-05dd-76b6-afcb-274d867e2f31",2,"A team runs `SAVE` directly on a production Redis instance with a large dataset and notices the whole server stops responding to any command for several seconds. What is the most likely explanation?",[166,168,170,172],{"key":136,"text":167},"`SAVE` writes the RDB synchronously on Redis's main thread, blocking command processing until it finishes",{"key":139,"text":169},"`SAVE` always fails silently on large datasets and the freeze is caused by an unrelated network issue",{"key":142,"text":171},"`SAVE` triggers a full AOF rewrite, which is what actually blocks the server",{"key":145,"text":173},"`SAVE` is deprecated and no longer exists in modern Redis, so the command has no effect other than the observed delay","`SAVE` runs in the main thread and blocks all other commands until the snapshot finishes writing. `BGSAVE` instead forks a child process to write the snapshot so the parent process keeps serving traffic. AOF rewrite (c) is a separate mechanism, and `SAVE` is a real, still-supported command (d).",{"id":176,"topic":9,"difficulty":163,"body":177,"options":178,"correct_key":145,"explanation":187},"019f89ea-05de-78fb-a424-b202761b4d73","Why does `BGSAVE` fork a child process instead of writing the snapshot from the main Redis process?",[179,181,183,185],{"key":136,"text":180},"Because forking is required by the operating system for any file write",{"key":139,"text":182},"Because the child process runs on a different CPU core to guarantee parallelism on all platforms",{"key":142,"text":184},"Because the parent process cannot access disk I\u002FO at all",{"key":145,"text":186},"So the parent process can keep serving client commands while the child writes the snapshot using a copy-on-write memory view of the dataset","Forking lets the child process take a consistent, copy-on-write snapshot of memory while the parent keeps handling requests uninterrupted. It's not an OS requirement for writes in general (a), core placement isn't guaranteed (b), and the parent can absolutely do disk I\u002FO (c) — that's exactly what `SAVE` does.",{"id":189,"topic":9,"difficulty":132,"body":190,"options":191,"correct_key":139,"explanation":200},"019f89ea-05df-79b0-8a69-4029882ea970","```\nappendonly yes\nappendfsync everysec\n```\nWhat does the `appendfsync everysec` setting mean?",[192,194,196,198],{"key":136,"text":193},"Redis calls `fsync()` on the AOF file after every single write command",{"key":139,"text":195},"Redis calls `fsync()` on the AOF file at most once per second, batching writes in between",{"key":142,"text":197},"Redis never calls `fsync()` and relies entirely on the operating system's own flush timing",{"key":145,"text":199},"Redis rewrites the entire AOF file from scratch every second","`everysec` batches disk syncs to roughly once per second, trading a small potential data-loss window (up to ~1 second of writes) for much better throughput than syncing on every write (`always`, option a) while still syncing far more predictably than leaving it entirely to the OS (`no`, option c). Rewriting the whole file every second (d) is not what fsync does — that's AOF rewrite, a separate operation.",{"id":202,"topic":9,"difficulty":163,"body":203,"options":204,"correct_key":142,"explanation":213},"019f89ea-05e0-7419-a4a0-a308d13a2e1f","A Redis instance is configured with `appendonly yes` and `appendfsync everysec`. The server process crashes due to a power failure. How much data is Redis likely to lose in the worst case?",[205,207,209,211],{"key":136,"text":206},"All data since the last RDB snapshot, potentially hours of writes",{"key":139,"text":208},"Nothing at all — `everysec` guarantees zero data loss under any failure",{"key":142,"text":210},"Up to roughly one second of the latest writes",{"key":145,"text":212},"Exactly the last single write command, regardless of write volume","With `everysec`, writes are buffered and fsynced to disk about once per second, so a crash can lose whatever writes happened since the last fsync — up to ~1 second's worth, not zero (b) and not tied to RDB snapshot intervals (a, which would apply if AOF were disabled). It's not a fixed single command either (d) — it's a time window, not a command count.",{"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":163,"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]