commit
113434a647
682 changed files with 7633 additions and 14253 deletions
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,812 @@ |
||||
{ |
||||
"-3pADOHMDQ0H6ZKNjURyn": { |
||||
"title": "What is Redis?", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"M-EXrTDeAEMz_IkEi-ab4": { |
||||
"title": "In-memory Data Structure Store", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"l2aXyO3STnhbFjvUXPpm2": { |
||||
"title": "Key-value Database", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"eHuBz_zSZK3rubn7nkd7g": { |
||||
"title": "Cache", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"mgGJTBU8ofvOzl9gYWhnG": { |
||||
"title": "Message Broker", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"-TjnSOY8txYrhhxRV1OIl": { |
||||
"title": "Caching", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"bVJASI7bfSYqYnNhX83ng": { |
||||
"title": "Real-time Analytics", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"URxGmhZHr0Y8nyrYj0gJl": { |
||||
"title": "Session Management", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"ZCyId3aIoLv3duxoJdk2P": { |
||||
"title": "Pub/Sub Messaging", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Fv1iGX22sApIEifM2IpJz": { |
||||
"title": "Leaderboards and Counters", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"8uRpPJ0iD4XnQPKruQc8P": { |
||||
"title": "Data Persistence Options", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"uVewcyaFi1Pt2Gs0KrkfA": { |
||||
"title": "Rich Data Structures", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"5-3pd4rLDqRzMzSRVLdXh": { |
||||
"title": "High Performance and Scalability", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"EvWiEx_AoxAht6sKxzW2l": { |
||||
"title": "Redis vs SQL/NoSQL DBs", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"1Af5H0BgdAsRdBCNdHz5v": { |
||||
"title": "When to choose Redis?", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Bf_kLfmy7_uflqC9N0-jt": { |
||||
"title": "Using Package Managers", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"yBZ79s6mzGdj5AnX2H_Hy": { |
||||
"title": "Pre-compiled Binaries", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"TDxv0q7jlZ26uZYYlneem": { |
||||
"title": "Using Docker", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"43LvShQhmoWQ8Nye7fLkz": { |
||||
"title": "Starting the Server", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"BOGXTjmCLo6WI6mYDsqRu": { |
||||
"title": "Connecting using Redis CLI", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"NhcZM4nUQoSBBf_1qXi6l": { |
||||
"title": "Basic Commands / SET, GET", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"DOdNkTY1yIMipWA2CD9xH": { |
||||
"title": "Settings and Getting Keys", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"lV_MnUNTB2h925idX0YWk": { |
||||
"title": "DEL", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"U84XgBFPyIbY0W5afH4cx": { |
||||
"title": "Overview of Data Types", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"ltF4vCT9ZA2XuUuHnuGnN": { |
||||
"title": "SET", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"mQc4H2ZMMSVjh33LJY8mK": { |
||||
"title": "GET", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"5K9qyC4mrhXYWOC8WSq8C": { |
||||
"title": "INCR", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"t4BXPofF8OCqH5KHwdYVh": { |
||||
"title": "DECR", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"cPWd53BO6tm-uy4gqLdtZ": { |
||||
"title": "APPEND", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"eJQW986HM4Wf1o1i2FnXs": { |
||||
"title": "STRLEN", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"0v8uLWRCbAqEmKKdYaRQW": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"2_E2VwbjTgk4xxTFWfHuV": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"nS0DHhfy4wxHItgOFhulA": { |
||||
"title": "EXPR", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Vll7VMmGWSI5XGZ9JpHyl": { |
||||
"title": "TTL", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Kq7G89KaZZMFkrH-9WZoS": { |
||||
"title": "LPUSH", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"jC8G1o7yFj7D_PGmOIgcD": { |
||||
"title": "RPUSH", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"voa61RTWMJD3Sk8DNJoVQ": { |
||||
"title": "LPOP", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"brUGqWZ287EWtvl9uUbNt": { |
||||
"title": "RPOP", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"8JTtBy6oD2wFYDizVkcVa": { |
||||
"title": "LRANGE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"hBFEUXtuzUTzWZKp2qWaZ": { |
||||
"title": "LINDEX", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"4oCcP9FxDJSDMHCEVBCNa": { |
||||
"title": "LLEN", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"9KvHcS5F4Jj5ZXgIAdOQY": { |
||||
"title": "LMOVE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"eBeEUYY-IL_CMkcm31lUL": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"XTwNCCtzXvZMdaex4gZEh": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Qgkpr9vf9d6-vUg1o8XFj": { |
||||
"title": "Sets", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"xUKoQps69FFQrJeuhD1pz": { |
||||
"title": "SADD", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"mQ0ILns53n1By0Tq6xSZI": { |
||||
"title": "SMEMBERS", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"WQWVL5GT_scHdgfCtI7WT": { |
||||
"title": "SREM", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Ji5ghlcGJtlmErHFqVf3d": { |
||||
"title": "SISMEMBER", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"5aLfNBewK4Dx017qVNO3T": { |
||||
"title": "SINTER", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"2gZL4a9aWGKWLa89iyHTc": { |
||||
"title": "SCARD", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"6QoYa-N2BKNBaRtvNeVNm": { |
||||
"title": "SUNION", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"JX5ajmcUmkshTO-mLF8lH": { |
||||
"title": "SDIFF", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"2SG4Hr9Tuv6cxmGkrKjYZ": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"3hayYoSZepw7pppBubotg": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"b48EUyFGUeSjtT5fOa_m6": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Wl23Jh-ASJOQ850yjaTIU": { |
||||
"title": "Strings", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"4-C4XqACUp4nvcMIj6djF": { |
||||
"title": "Lists", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"wY46Qj5Inw_ClBNI9PB_2": { |
||||
"title": "Hashes", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"BOJzn9SWad9oRRdY_ub01": { |
||||
"title": "HSET", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"MsKg9m5jFwHM2Bzjf-vdu": { |
||||
"title": "HGET", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"TpR33sJ-tAjeG3jpGTvYR": { |
||||
"title": "HGETALL", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"E7xFZkqqbzokD5KGTn9zJ": { |
||||
"title": "HDEL", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"adhLMuSmfYMRyWTwIgnyE": { |
||||
"title": "HEXISTS", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"jtVnUD-na-WffMaS8qYfu": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"QTbkWZ7BpqYmBhUivccPu": { |
||||
"title": "Sorted Sets", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"0swsBD0sOY-o5lzibT999": { |
||||
"title": "ZADD", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"3pFChX6YIItrBz9lxu4XM": { |
||||
"title": "ZRANGE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"OlbixGa5RmdqEt7snY04j": { |
||||
"title": "ZRANGEBYSCORE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"m0FZDPwNE71zcwM_gUwz0": { |
||||
"title": "ZREM", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"W4v7FIQr2k-Vbm-HdfKog": { |
||||
"title": "ZINCRBY", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"AF_kWM4V8n5Ux06IgEVTl": { |
||||
"title": "ZRANK", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"O-fZM_U-tW0pYtNzN_8Ax": { |
||||
"title": "ZCOUNT", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"P6TDUCroLlEI7qePBFHIH": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"lxevY15ZyP43s_JrEqMX7": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"o6e_CwxfPoU6qkfWkwKwj": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"jCaVx5wvsvuyqtwh6m8si": { |
||||
"title": "Naming Conventions", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"UlQHqw1dbxZnAKbsWsOgU": { |
||||
"title": "Retrieval by Pattern", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"OSIYDYPGz8Vgo9SU9GGH9": { |
||||
"title": "Expiration", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"jrgaoDnt_RxTu79hk4hCD": { |
||||
"title": "Atomicity in Redis", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"LHlwjN3WHYUBUafzzwsWQ": { |
||||
"title": "Pipelining", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"7JzeyTrkZ_1_yxMVrqvZU": { |
||||
"title": "Batch Operations", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"0Q3AkE8leWAyYsww3-BHX": { |
||||
"title": "Bitmaps", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"B-YUFhPQNdr1KZNupmR5N": { |
||||
"title": "SETBIT", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"0HFLJfcrcSnAVTecG3P8W": { |
||||
"title": "GETBIT", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"jpcyXSSib7q4WBPmpgnXA": { |
||||
"title": "BITCOUNT", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"tkrxArg_oYH0aQfM8NkD2": { |
||||
"title": "BITOP", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Df1Eu7CuA-ARYii9JVvnm": { |
||||
"title": "BITPOS", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"s7PEr-5TAm5EGJm0RSjPJ": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"cszjT3YK8oyhGpqLTQzwX": { |
||||
"title": "HyperLogLog", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"8a4DmPZrX2xGZ7zdWxS63": { |
||||
"title": "PFADD", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"JWT30KIJQHVw0MXI5sGR6": { |
||||
"title": "PFCOUNT", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"s50jr_XOUcxh65-tGCKf5": { |
||||
"title": "PFMERGE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"XPeCvikPuu6EJ8UcOLGPh": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"zXs_9n2yEb_eVi0WuOQKH": { |
||||
"title": "Streams", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"7isWhgrUA6M5IGM2U2tm4": { |
||||
"title": "XADD", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"4sKiAtX5aIL4NDsQkilNC": { |
||||
"title": "XREAD", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"CiYFuYE8XudZkR6AW2NQ7": { |
||||
"title": "XRANGE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"DQJCMEw13lELcw_AwLfrT": { |
||||
"title": "XLEN", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"zXlSBfa-Gi9_GhSYEzre3": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"4-z4hDKm86qQatYnmE21R": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"_NiUdVQ85qnvryI38k_vQ": { |
||||
"title": "Geospatial Indexes", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"U3N1EgHFs1-YUaB_VrJfw": { |
||||
"title": "GEOADD", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"OWWDLuGTbdNwME7v2jxVP": { |
||||
"title": "GEOSEARCH", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"GNMjrLPkpTphneoQ0GoZF": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"FCbdKnkI1ZHGekT6yiGua": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"9W_jaK1DSEZHRKdPcUM7h": { |
||||
"title": "Pub/Sub", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"55BCntuWlaQiLPqNtb-2i": { |
||||
"title": "SUBSCRIBE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"5gkZzm2F4vu6IxUoJLYbK": { |
||||
"title": "UNSUBSCRIBE", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"gIPo-2CNqE1BsOaDzmkCU": { |
||||
"title": "PUBLISH", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"V-d6q-3Sf0dl5v8xiCQwl": { |
||||
"title": "More Commands", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"MvyE_JUJej0UB9xe8Anfj": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"YHbWlKrQqptUDbaQVy0_A": { |
||||
"title": "Transactions", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"c-y5Eck8VtSyIf8RAW9p7": { |
||||
"title": "WATCH", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Ljy-Mc0EBBX4_vXfYZ5-4": { |
||||
"title": "EXEC", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"U6hST1MkS16T2CHV3-Ise": { |
||||
"title": "MULTI", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"msW0Wd2H-6FFNDnjC64t-": { |
||||
"title": "Optimistic Locking", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Veb30QrPYNjUn13dtGbUr": { |
||||
"title": "Lua Scripting", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"rjeq3i9oX8IGyQzo--L3c": { |
||||
"title": "EVAL", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"3X0x_PcJGWBVPL-LSVAln": { |
||||
"title": "EVALSHA", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"kF_nGo845XDwLkwcQt008": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"bQaek7f3dAaZfSUhwovm1": { |
||||
"title": "Persistence Options", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"D3pZdAjwPFMRxX1-iyu5-": { |
||||
"title": "How RDB Works?", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"_pb2DPrFUUZabKxWsuFUo": { |
||||
"title": "Configuring Save Interval", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Z6yJwUkcDX08HoMyf1LwX": { |
||||
"title": "Usecases / Best Practices", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"PTj6oxvpw8vP295WvAI80": { |
||||
"title": "How AOF Works?", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"ibaZ34-laQtUyxAsERi7o": { |
||||
"title": "AOF rewrite & compaction", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"9ToKTUqbi-NV5Wcwb21PT": { |
||||
"title": "Truncation / Corruption", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"VvOQUO22ZF8VvDSqHENNU": { |
||||
"title": "Usecases", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"vzp7DUpjklzIA0E9WxJQA": { |
||||
"title": "Usecases / Best Practices", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"80035BzcB-fKCvD_3N8zE": { |
||||
"title": "No Persistence Option", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"3S-qqOlfr60HR4VvDr4He": { |
||||
"title": "RDB vs AOF Tradeoffs", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"S5Y26m1oHCQpB-oLCdtac": { |
||||
"title": "Hybrid Persistence", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"rSD8nJ-uNpHJVe5Hn66h7": { |
||||
"title": "Replication Basics", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"nci3OB1NE1zJHUPfZCOpT": { |
||||
"title": "Redis Sentinel", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"AQiCcHS6dBAAAPloxiXub": { |
||||
"title": "Clustering", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Qy42paiTUsO8HIwbWTMui": { |
||||
"title": "Authentication", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"wsuKH7YwGDV6GYQbdhA4o": { |
||||
"title": "Network Security", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"gdiWwTQg6A-BFHdQBmgmH": { |
||||
"title": "SSL/TLS Encryption", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"q2Jw49QUWCUGIfcEC1bZI": { |
||||
"title": "INFO", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"jBtEiylcedtaE6E20Uk4V": { |
||||
"title": "MONITOR", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"XBPwHgIsXupMsyoOFkJZ0": { |
||||
"title": "RedisInsight", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"y5FPSAi6T-5X9SUfR58_-": { |
||||
"title": "RedisCommander", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"xF0wQYmtwXYkrzvWg5gOO": { |
||||
"title": "Memory Management", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Sd1ENOXSFCz1YqccXjr2A": { |
||||
"title": "Max Memory Policy", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"yaCWw2KjX58SaPajUAb0d": { |
||||
"title": "Slow Log Analysis", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"kgHwK4N-sfh6dHjd_D_me": { |
||||
"title": "redis-benchmark", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"2p5RF4lVYfRvYTo1Ofm-a": { |
||||
"title": "Monitoring", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"hLIT00Iz7rV56ZBIUhWYn": { |
||||
"title": "Redis Modules", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"jicsfYw56VrbRUt7M8c85": { |
||||
"title": "RedisJSON", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"_GdTXcJO8uJlhPdfrmeXG": { |
||||
"title": "Search", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"RBr8opWSh2TKXC8Fmdg0j": { |
||||
"title": "RedisTimeSeries", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"GwVL5CvbnHsiWb1hVh7lK": { |
||||
"title": "RedisBloom", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"giyKPtQ-pziA064P8OQD-": { |
||||
"title": "redis.conf", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"wXRDsNGFckXV_CSiit5sN": { |
||||
"title": "Backup and Recovery", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"Cb-KazR4PuR86VX5oT0zi": { |
||||
"title": "Upgrading Redis", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"nUIfTkgm3PlSiqgun1BS7": { |
||||
"title": "Disaster Recovery", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"8lyXDuZJ-KHl4v2_8Ew1h": { |
||||
"title": "Redis Enterprise", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"cybF72wlJyJbHLUjitLvn": { |
||||
"title": "Active-Active geo Distribution", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"sWOFnbh2EyaHRzquz1UeF": { |
||||
"title": "Redis on Flash", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"ujs77bV8g8-FOm5hBtZFd": { |
||||
"title": "Security and Compliance", |
||||
"description": "", |
||||
"links": [] |
||||
}, |
||||
"JlLwy69eQ1bPHAOOJNqjo": { |
||||
"title": "When to consider enterprise?", |
||||
"description": "", |
||||
"links": [] |
||||
} |
||||
} |
After Width: | Height: | Size: 494 KiB |
@ -0,0 +1,70 @@ |
||||
import { |
||||
BadgeCheck, |
||||
HeartHandshake, |
||||
Telescope, |
||||
type LucideIcon, |
||||
} from 'lucide-react'; |
||||
import type { ReactNode } from 'react'; |
||||
import { cn } from '../lib/classname'; |
||||
|
||||
type RoadmapAlertProps = { |
||||
title: string; |
||||
badgeText?: string; |
||||
description: string | ReactNode; |
||||
floatingIcon: LucideIcon; |
||||
className?: string; |
||||
}; |
||||
|
||||
export function RoadmapAlert(props: RoadmapAlertProps) { |
||||
const { |
||||
title, |
||||
badgeText, |
||||
description, |
||||
floatingIcon: FloatingIcon, |
||||
className, |
||||
} = props; |
||||
|
||||
return ( |
||||
<div |
||||
className={cn( |
||||
'relative mb-3 w-full rounded-xl bg-yellow-100 px-4 py-3 text-yellow-800', |
||||
className, |
||||
)} |
||||
> |
||||
<h2 className="flex items-center text-base font-semibold text-yellow-800 sm:text-lg"> |
||||
{title}{' '} |
||||
{badgeText && ( |
||||
<span className="ml-1.5 rounded-md border border-yellow-500 bg-yellow-200 px-1.5 text-xs uppercase tracking-wide text-yellow-800"> |
||||
{badgeText} |
||||
</span> |
||||
)} |
||||
</h2> |
||||
<p className="mb-2 mt-1 text-balance">{description}</p> |
||||
<p className="mb-1.5 mt-2 flex flex-col gap-2 text-sm md:flex-row"> |
||||
<a |
||||
href="/roadmaps" |
||||
className="flex items-center gap-1.5 rounded-md border border-yellow-600 bg-yellow-200 px-2 py-1 text-yellow-800 transition-colors hover:bg-yellow-300" |
||||
> |
||||
<BadgeCheck size={15} /> |
||||
Visit Official Roadmaps |
||||
</a> |
||||
<a |
||||
href="/community" |
||||
className="flex items-center gap-1.5 rounded-md border border-yellow-600 px-2 py-1 text-yellow-700 transition-colors hover:bg-yellow-300 hover:text-yellow-800" |
||||
> |
||||
<HeartHandshake size={15} /> |
||||
Explore Community Roadmaps |
||||
</a> |
||||
<a |
||||
href="/ai/explore" |
||||
className="flex items-center gap-1.5 rounded-md border border-yellow-600 px-2 py-1 text-yellow-700 transition-colors hover:bg-yellow-300 hover:text-yellow-800" |
||||
> |
||||
<Telescope size={15} /> |
||||
Explore other AI Roadmaps |
||||
</a> |
||||
</p> |
||||
|
||||
<FloatingIcon className="pointer-events-none absolute right-2 top-2 hidden h-12 w-12 text-yellow-500 opacity-50 sm:block md:bottom-2 md:top-auto" /> |
||||
</div> |
||||
); |
||||
} |
@ -0,0 +1,31 @@ |
||||
import { useIsMounted } from '../../hooks/use-is-mounted'; |
||||
import { MarkFavorite } from '../FeaturedItems/MarkFavorite'; |
||||
import type { GroupType } from './RoadmapsPage'; |
||||
|
||||
type RoadmapCardProps = { |
||||
roadmap: GroupType['roadmaps'][number]; |
||||
}; |
||||
|
||||
export function RoadmapCard(props: RoadmapCardProps) { |
||||
const { roadmap } = props; |
||||
|
||||
const isMounted = useIsMounted(); |
||||
|
||||
return ( |
||||
<a |
||||
key={roadmap.link} |
||||
className="relative rounded-md border bg-white px-3 py-2 text-left text-sm shadow-sm transition-all hover:border-gray-300 hover:bg-gray-50" |
||||
href={roadmap.link} |
||||
> |
||||
{roadmap.title} |
||||
|
||||
{isMounted && ( |
||||
<MarkFavorite |
||||
resourceId={roadmap.link.split('/').pop()!} |
||||
resourceType="roadmap" |
||||
className="data-[is-favorite=true]:opacity-35" |
||||
/> |
||||
)} |
||||
</a> |
||||
); |
||||
} |
@ -1,3 +1,8 @@ |
||||
# Cloud Messaging |
||||
|
||||
Firebase Cloud Messaging (FCM) is a powerful, battery-efficient messaging service that enables you to send messages reliably and securely to your Android applications. It enables you to send two types of messages: "notification messages" and "data messages". Notification messages are primarily meant for user notifications and will only be delivered when the application is in the foreground. On the other hand, data messages can handle even when the app is in the background or killed and can be used to send custom key-value pairs. FCM also supports various additional features, such as topic messaging to send messages to multiple devices subscribed to a common topic, device group messaging for sending messages to groups of user devices, and upstream messaging for sending messages from the client application to the FCM server. |
||||
|
||||
Visit the following resources to learn more: |
||||
|
||||
- [@official@Documentation](https://firebase.google.com/docs/cloud-messaging/android/client) |
||||
- [@video@Firebase Cloud Messaging](https://www.youtube.com/watch?v=sioEY4tWmLI&list=PLl-K7zZEsYLkuHRCtHTpi6JYHka8oHLft) |
||||
|
@ -1,3 +1,8 @@ |
||||
# Crashlytics |
||||
|
||||
`Crashlytics` is a lightweight, real-time crash reporter that helps you track, prioritize, and fix stability issues that dismantle your app's quality. It delivers fast and precise information about crashes and helps you gain insights into your app's performance so you can pinpoint the exact line of code your app crashed on. Crashlytics offers a comprehensive suite of features like crash analysis, issue aggregation, and tracking user activities that led to a crash. This tool is now a part of Google's `Firebase` platform but can also be used independently. |
||||
|
||||
Visit the following resources to learn more: |
||||
|
||||
- [@official@Documentation](https://firebase.google.com/docs/crashlytics/get-started?platform=android) |
||||
- [@video@Firebase: Crashlytics](https://www.youtube.com/watch?v=LhjTAkifr6g) |
||||
|
@ -1,3 +1,8 @@ |
||||
# Remote Config |
||||
|
||||
Firebase Remote Config is a cloud service offered by Firebase. It lets you change the behavior and appearance of your app without requiring a new app release. By using Firebase Remote config, you can customize your app for different user segments, manage the core aspects of your app by modifying parameters externally, and conduct A/B tests to improve your app. It works efficiently by using default values that control the behavior and appearance of your app. When your app needs configuration information, it makes a request to the Firebase Remote Config server. If the server has updated values, these values replace the default ones, hence modifying the app's behavior or appearance according to your needs. |
||||
|
||||
Visit the following resources to learn more: |
||||
|
||||
- [@official@Documentation](https://firebase.google.com/docs/remote-config/get-started?platform=android) |
||||
- [@video@Firebase: Remote config](https://www.youtube.com/watch?v=pcnnbjAAIkI) |
||||
|
@ -1,5 +1,13 @@ |
||||
# Angular Architecture |
||||
|
||||
Angular follows a modular architecture pattern, dividing the application into distinct modules, components, services, and other elements, which enhances code organization and maintainability. The key building blocks include modules, which are containers grouping related components, services, directives, and other elements to ensure proper encapsulation and reusability. Components are the building blocks of Angular applications, representing parts of the user interface with associated logic, consisting of templates, styles, and a class defining behavior. Services encapsulate reusable business logic, data manipulation, and API communication, enabling data and functionality sharing across components. Directives are HTML attributes or elements that extend HTML functionality, allowing reusable behaviors across the application. Lastly, pipes transform data before displaying it in templates, providing convenient ways to format, filter, and sort data. |
||||
|
||||
Visit the following resources to learn more: |
||||
|
||||
- [@official@Angular coding style guide](https://angular.dev/style-guide) |
||||
- [@article@The Ultimate Guide to Angular Architecture: Best Practices for efficient coding with Angular Framework](https://angulardive.com/blog/the-ultimate-guide-to-angular-architecture-best-practices-for-efficient-coding-with-angular-framework/) |
||||
- [@article@Modern Architectures with Angular Part 1: Strategic design with Sheriff and Standalone Components](https://www.angulararchitects.io/en/blog/modern-architectures-with-angular-part-1-strategic-design-with-sheriff-and-standalone-components/) |
||||
- [@article@Optimizing the architecture of large web applications with Angular](https://albertobasalo.medium.com/optimizing-the-architecture-of-large-web-applications-with-angular-79d03b01a92b) |
||||
- [@article@Angular Architecture Concepts and Patterns](https://www.bigscal.com/blogs/frontend/angular-architecture-concepts-and-patterns/) |
||||
- [@article@Top 10 Angular Architecture Mistakes](https://angularexperts.io/blog/top-10-angular-architecture-mistakes) |
||||
- [@article@Architecting Angular: A Guide to effective project structure](https://medium.com/@nile.bits/architecting-angular-a-guide-to-effective-project-structure-9756bae92262) |
@ -1,3 +1,7 @@ |
||||
# Real Time Data |
||||
|
||||
Real-time data refers to information that is processed and made available immediately or with minimal delay, allowing users or systems to react promptly to current conditions. This type of data is essential in applications requiring immediate updates and responses, such as financial trading platforms, online gaming, real-time analytics, and monitoring systems. Real-time data processing involves capturing, analyzing, and delivering information as it is generated, often using technologies like stream processing frameworks (e.g., Apache Kafka, Apache Flink) and low-latency databases. Effective real-time data systems can handle high-speed data flows, ensuring timely and accurate decision-making. |
||||
|
||||
Learn more from the following resources: |
||||
- [@article@Real-time data - Wiki](https://en.wikipedia.org/wiki/Real-time_data) |
||||
- [@article@What is Real-time Data?](https://www.qlik.com/us/streaming-data/real-time-data) |
@ -1,37 +1,9 @@ |
||||
# Azure |
||||
|
||||
Microsoft Azure, often referred to simply as "Azure", is a cloud computing platform and service offered by Microsoft. Azure provides a wide range of cloud services, tools, and resources for organizations and developers to build, deploy, and manage applications on a global scale. With support for multiple programming languages and frameworks, Azure makes it easier to move existing applications or create new ones for the cloud environment. |
||||
Azure is Microsoft's comprehensive cloud computing platform that offers a wide range of services for building, deploying, and managing applications. It provides infrastructure as a service (IaaS), platform as a service (PaaS), and software as a service (SaaS) solutions, supporting various programming languages, tools, and frameworks. Azure's services include virtual machines, storage, databases, AI and machine learning, IoT, and more. It offers global data center coverage, integrated DevOps tools, and robust security features, making it a versatile platform for businesses of all sizes to innovate, scale, and transform their operations in the cloud. |
||||
|
||||
## Key Features |
||||
Learn more from the following resources: |
||||
|
||||
- **Compute Power**: Azure offers a variety of virtual machines, containers, and serverless computing options to execute and scale applications. |
||||
|
||||
- **Storage**: Azure provides several storage options - Blob Storage for unstructured data, File Storage for file shares, and Disk Storage for block storage. |
||||
|
||||
- **Databases**: Azure offers managed relational databases, NoSQL databases, and in-memory databases for different needs and workloads. |
||||
|
||||
- **Analytics**: Azure provides tools and services for big data and advanced analytics, including Azure Data Lake, Azure Machine Learning, and Power BI. |
||||
|
||||
- **Networking**: Azure supports various networking services, such as Virtual Networks, Load Balancers, and Content Delivery Networks, to ensure secure and reliable connectivity to applications. |
||||
|
||||
- **Security**: Azure provides a range of security services and features to help protect your applications and data, including Advanced Threat Protection, Azure Active Directory, and Azure Firewall. |
||||
|
||||
- **Identity & Access Management**: Azure Active Directory (AD) provides identity and access management services, enabling secure sign-on and multi-factor authentication for applications and users. |
||||
|
||||
- **Hybrid Cloud**: Azure supports hybrid cloud deployment, meaning you can run some parts of your infrastructure on-premises and some on Azure. |
||||
|
||||
## Pros and Cons |
||||
|
||||
**Pros**: |
||||
|
||||
- Wide range of services and features |
||||
- Integration with other Microsoft products |
||||
- Strong support for hybrid cloud |
||||
- Good for large enterprises already using Microsoft technologies |
||||
|
||||
**Cons**: |
||||
|
||||
- Can be complex to navigate and manage |
||||
- Potentially costly depending on usage and services |
||||
|
||||
Azure is an excellent choice for those looking to leverage a vast array of cloud services, particularly if you're already invested in the Microsoft ecosystem. It's important to keep in mind, though, that the platform's complexity can lead to a steeper learning curve, and managing costs can be challenging as usage scales. |
||||
- [@official@Azure Website](https://azure.microsoft.com) |
||||
- [@video@Azure DevOps Tutorial for Beginners](https://www.youtube.com/watch?v=4BibQ69MD8c) |
||||
- [@feed@daily.dev Azure Feed](https://app.daily.dev/tags/azure) |
@ -1,39 +1,8 @@ |
||||
# LAN |
||||
|
||||
A **Local Area Network (LAN)** is a vital component of cyber security that you must understand. This chapter covers a brief introduction to LAN, its basic functionalities and importance in maintaining a secure network environment. |
||||
A Local Area Network (LAN) is a computer network that interconnects computers and devices within a limited area, such as a home, office, school, or small group of buildings. LANs typically use Ethernet or Wi-Fi technologies to enable high-speed data communication among connected devices. They allow for resource sharing, including files, printers, and internet connections. LANs are characterized by higher data transfer rates, lower latency, and more direct control over network configuration and security compared to wide area networks (WANs). Common LAN applications include file sharing, collaborative work, local hosting of websites or services, and networked gaming. The advent of software-defined networking and cloud technologies has expanded LAN capabilities, enabling more flexible and scalable local network infrastructures. |
||||
|
||||
## What is LAN? |
||||
Learn more from the following resources: |
||||
|
||||
LAN stands for Local Area Network, which is a group of computers and other devices interconnected within a limited geographical area, like an office, school campus or even a home. These networks facilitate sharing of resources, data and applications among connected devices. They can be wired (Ethernet) or wireless (Wi-Fi). |
||||
|
||||
## Key Components of LAN |
||||
|
||||
LAN comprises several key components, including: |
||||
|
||||
- **Workstations**: End user devices like computers, laptops or smartphones connected to the network. |
||||
- **Servers**: Computers that provide resources and services to the workstations. |
||||
- **Switches**: Networking devices that connect workstations and servers, and distribute network traffic efficiently. |
||||
- **Routers**: Devices that connect the LAN to the internet or other networks (e.g., Wide Area Networks or WANs). |
||||
|
||||
## Importance of LAN |
||||
|
||||
LANs play a fundamental role in modern organizations, providing: |
||||
|
||||
- **Resource Sharing**: They allow sharing of resources such as printers, scanners, storage drives and software applications across multiple users. |
||||
- **Communication**: They enable faster communication between connected devices and allow users to collaborate effectively using email, chat or VoIP services. |
||||
- **Data Centralization**: They allow data storage and retrieval from central servers rather than individual devices, which simplifies data management and backups. |
||||
- **Scalability**: LANs can be easily expanded to accommodate more users and resources to support business growth. |
||||
|
||||
## LAN Security |
||||
|
||||
Understanding LAN is crucial for maintaining a secure network environment. Since a LAN connects multiple devices, it forms the central point of various security vulnerabilities. Implementing effective security measures is vital to prevent unauthorized access, data leaks, and malware infections. Some best practices for securing your LAN include: |
||||
|
||||
- **Firewalls**: Deploy hardware-based and software-based firewalls to protect your network from external and internal threats. |
||||
- **Antivirus Software**: Use antivirus applications on workstations and servers to prevent malware infections. |
||||
- **Wireless Security**: Implement robust Wi-Fi security measures like WPA2 encryption and strong passwords to prevent unauthorized access. |
||||
- **Access Controls**: Implement network access controls to grant authorized users access to specific resources and data. |
||||
- **Network Segmentation**: Divide the network into separate zones based on required access levels and functions to contain potential threats. |
||||
- **Regular Updates**: Keep your workstations, servers and network devices up-to-date with security patches and updates to fix vulnerabilities. |
||||
- **Network Monitoring**: Use network monitoring tools to keep track of network traffic and identify potential threats or anomalies. |
||||
|
||||
By understanding the components and importance of LAN, you can effectively contribute to improving your organization's cyber security posture. In the next chapter, we will discuss additional cyber security topics that you need to be familiar with. |
||||
- [@article@What is a LAN?](https://www.cisco.com/c/en_uk/products/switches/what-is-a-lan-local-area-network.html) |
||||
- [@video@LAN vs. WAN: What's the Difference?](https://www.youtube.com/watch?v=5OoX_cRLaNM) |
@ -1,27 +1,8 @@ |
||||
# LDAP |
||||
|
||||
LDAP is a protocol used to access directory services, i.e., a hierarchical database that holds information about various objects, such as users, groups, computer accounts, and more. In the context of cybersecurity, it's essential in storing information related to authentication, authorization, and user profiles. LDAP is primarily utilized in enterprise environments as a centralized system for managing user accounts and their permissions. |
||||
LDAP (Lightweight Directory Access Protocol) is a standardized application protocol for accessing and maintaining distributed directory information services over an IP network. It's primarily used for querying and modifying directory services, such as user authentication and information lookup. LDAP organizes data in a hierarchical tree structure and is commonly used in enterprise environments for centralized user management, authentication, and authorization. It supports features like single sign-on and can integrate with various applications and services. LDAP is widely used in conjunction with Active Directory and other directory services to provide a centralized repository for user accounts, groups, and other organizational data, facilitating efficient user and resource management in networked environments. |
||||
|
||||
**How LDAP works** |
||||
Learn more from the following resources: |
||||
|
||||
- It is based on a client-server model, where the client sends a request to the server (usually an LDAP directory server), and the server responds accordingly. |
||||
- LDAP servers store directory entries in a hierarchical (tree-like) structure, starting from the root (known as the "base DN") and following a series of branches down to individual entries. |
||||
- Each entry in the LDAP directory has a distinguished name (DN), which uniquely identifies the entry in the hierarchy. |
||||
|
||||
**LDAP in Cyber Security** |
||||
In cybersecurity, LDAP servers are often used for the following purposes: |
||||
|
||||
- **Authentication**: LDAP stores user account and password information, which can be used to authenticate users to access specific applications or resources. |
||||
- **Authorization**: Using LDAP directory groups, you can manage access controls for users and grant or deny permissions based on their role or membership. |
||||
- **User Management**: LDAP provides a single, centralized repository for managing user account information, making it easier to maintain consistent user data across multiple systems or applications. |
||||
|
||||
**LDAP Security Best Practices** |
||||
To enhance the security of your LDAP implementation, consider adopting these best practices: |
||||
|
||||
- Use secure protocols like LDAPS (LDAP over SSL) or StartTLS to encrypt the data transmitted between the client and the LDAP server. |
||||
- Implement strong access control rules to ensure that only authorized clients can access the LDAP directory. |
||||
- Regularly update and patch both client-side and server-side LDAP software to protect against known vulnerabilities. |
||||
- Limit the searchable scope on the client-side, to minimize the risk of information disclosure. |
||||
- Use strong authentication methods, such as multi-factor authentication (MFA), to secure access to the LDAP directory. |
||||
|
||||
In conclusion, LDAP is a critical component in many enterprise-level cybersecurity architectures, as it plays a vital role in handling authentication and authorization processes. To ensure the security of your LDAP implementation, it's crucial to follow best practices and carefully manage access to directory services. |
||||
- [@article@What Is LDAP & How Does It Work?](https://www.okta.com/uk/identity-101/what-is-ldap/) |
||||
- [@video@](https://www.youtube.com/watch?v=vy3e6ekuqqg) |
@ -1,43 +1,12 @@ |
||||
# Linux |
||||
|
||||
Linux is an open-source operating system (OS) that is widely popular due to its flexibility, stability, and security features. As a Unix-based OS, Linux has a command-line interface, which allows users to perform various tasks through text commands. However, graphical user interfaces (GUIs) can also be installed for ease of use. |
||||
|
||||
## Key Features |
||||
|
||||
- **Open-source**: Anyone can view, modify, and distribute the Linux source code, promoting collaboration and continuous improvement within the OS community. |
||||
- **Modular design**: Linux can be customized for various computing environments, such as desktops, servers, and embedded systems. |
||||
- **Stability and performance**: Linux is well-known for its ability to handle heavy loads without crashing, making it an ideal choice for servers. |
||||
- **Strong Security**: Linux has robust security mechanisms, such as file permissions, a built-in firewall, and an extensive user privilege system. |
||||
- **Large Community**: Linux has a vast, active user community that offers a wealth of knowledge, user-contributed software, and support forums. |
||||
|
||||
## Popular Linux Distributions |
||||
|
||||
There are numerous Linux distributions available, catering to specific user needs and preferences. Some popular distributions include: |
||||
|
||||
- **Ubuntu**: A user-friendly distribution suitable for beginners, often used for desktop environments. |
||||
- **Fedora**: A cutting-edge distribution with frequent updates and innovative features, ideal for developers and advanced users. |
||||
- **Debian**: A very stable distribution that prioritizes free software and benefits from a large, active community. |
||||
- **Arch Linux**: A highly customizable distribution that allows users to build their system from the ground up, suited for experienced users. |
||||
- **CentOS**: A distribution focused on stability, security, and manageability, making it a popular choice for server environments. |
||||
|
||||
## Security Best Practices for Linux |
||||
|
||||
While Linux is inherently secure, there are best practices to enhance your system's security further: |
||||
|
||||
- Keep your system updated: Regularly update your kernel, OS packages, and installed software to ensure you have the latest security patches. |
||||
- Enable a firewall: Configure and enable a firewall, such as `iptables`, to control incoming and outgoing network traffic. |
||||
- Use strong passwords and user accounts: Create separate accounts with strong passwords for different users and grant them only the required privileges. |
||||
- Disable unused services: Unnecessary services can be potential security risks; ensure only required services are running on your system. |
||||
- Implement a Security-Enhanced Linux (SELinux) policy: SELinux provides a mandatory access control (MAC) system that restricts user and process access to system resources. |
||||
|
||||
By understanding Linux's features and best practices, you can leverage its powerful capabilities and robust security features to enhance your computing environment's performance and safety. |
||||
Linux is an open-source, Unix-like operating system kernel first released by Linus Torvalds in 1991. It forms the core of various operating systems known as Linux distributions. Linux is known for its stability, security, and flexibility, making it popular for servers, embedded systems, and increasingly for desktop use. It supports a wide range of hardware and offers powerful command-line interfaces alongside graphical user interfaces. Linux adheres to Unix principles, emphasizing modularity and the philosophy of "do one thing and do it well." Its open-source nature allows for community-driven development and customization. Linux is widely used in cloud computing, supercomputers, and Android devices, and is a fundamental component of the LAMP (Linux, Apache, MySQL, PHP) web server stack. |
||||
|
||||
Learn more from the following resources: |
||||
|
||||
- [@roadmap@Linux Roadmap](https://roadmap.sh/linux) |
||||
- [@article@Learn Linux](https://linuxjourney.com/) |
||||
- [@video@Linux in 100 Seconds](https://www.youtube.com/watch?v=rrB13utjYV4) |
||||
- [@video@Introduction to Linux](https://youtu.be/sWbUDq4S6Y8) |
||||
- [@article@Linux Commands Cheat Sheet](https://cdn.hostinger.com/tutorials/pdf/Linux-Commands-Cheat-Sheet.pdf) |
||||
- [@course@Linux from scratch - Cisco](https://www.netacad.com/courses/os-it/ndg-linux-unhatched) |
||||
- [@video@Linux in 100 Seconds](https://www.youtube.com/watch?v=rrB13utjYV4) |
||||
- [@video@Introduction to Linux](https://youtu.be/sWbUDq4S6Y8) |
||||
- [@feed@Explore top posts about Linux](https://app.daily.dev/tags/linux?ref=roadmapsh) |
||||
|
@ -1,25 +1,8 @@ |
||||
# localhost |
||||
|
||||
Localhost (also known as loopback address) is a term used to define a network address that is used by a device (usually a computer or a server) to refer to itself. In other words, it's a way for your device to establish a network connection to itself. The most commonly used IP address for localhost is `127.0.0.1`, which is reserved as a loopback address in IPv4 networks. For IPv6 networks, it's represented by `::1`. |
||||
**Localhost** refers to the standard hostname used to access the local computer on which a network service or application is running. It resolves to the loopback IP address `127.0.0.1` for IPv4 or `::1` for IPv6. When you connect to `localhost`, you're effectively communicating with your own machine, allowing you to test and debug network services or applications locally without accessing external networks. |
||||
|
||||
## Purpose and Usage of Localhost |
||||
Learn more from the following resources: |
||||
|
||||
Localhost is useful for a variety of reasons, such as: |
||||
|
||||
- **Testing and Development**: Developers can use localhost to develop and test web applications or software without the need for connecting to external network resources. |
||||
|
||||
- **Network Services**: Some applications and servers use localhost to provide network services to the local system only, optimizing performance and security. |
||||
|
||||
- **Troubleshooting**: Localhost can be used as a diagnostic tool to test if the network stack on the device is functioning correctly. |
||||
|
||||
## Connecting to Localhost |
||||
|
||||
To connect to localhost, you can use several methods depending on the tasks you want to accomplish: |
||||
|
||||
- **Web Browser**: If you're running a local web server, you can simply enter `http://127.0.0.1` or `http://localhost` in your browser's address bar and access the locally hosted web application. |
||||
|
||||
- **Command Line**: You can use utilities like `ping`, `traceroute`, or `telnet` at the command prompt to verify connectivity and network functionality using localhost. |
||||
|
||||
- **Application Settings**: Some applications, such as web servers or database servers, may have configuration settings that allow you to bind them to the loopback address (`127.0.0.1` or `::1`). This will restrict the services to the local system and prevent them from being accessed by external sources. |
||||
|
||||
Remember, connections to localhost do not pass through your computer's physical network interfaces, and as such, they're not subject to the same security risks or performance limitations that a real network connection might have. |
||||
- [@article@What is localhost?](https://www.freecodecamp.org/news/what-is-localhost/) |
||||
- [@video@What is localhost? | Explained](https://www.youtube.com/watch?v=m98GX51T5dI) |
@ -1,48 +1,9 @@ |
||||
# LOLBAS |
||||
|
||||
**LoLBAS** stands for **Living off the Land Binaries and Scripts**. It is a collection of tools, utilities, and scripts, often built-in within an operating system, that attackers exploit for unintended purposes. These tools can assist the adversaries in achieving their objectives without the need to install any additional software, thus avoiding detection by many security solutions. |
||||
**LOLBAS** (Living Off the Land Binaries and Scripts) refers to a collection of legitimate system binaries and scripts that can be abused by attackers to perform malicious actions while evading detection. These tools, which are often part of the operating system or installed software, can be leveraged for various purposes, such as executing commands, accessing data, or modifying system configurations, thereby allowing attackers to carry out their activities without deploying custom malware. The use of LOLBAS techniques makes it harder for traditional security solutions to detect and prevent malicious activities since the binaries and scripts used are typically trusted and deemed legitimate. |
||||
|
||||
In this section, we will explore the concept and significance of LoLBAS, and the challenges they present in the context of cyber security. |
||||
Learn more from the following resources: |
||||
|
||||
## What is LoLBAS? |
||||
|
||||
LoLBAS are legitimate tools, binaries, and scripts that are already present in a system. These may be default OS utilities, like PowerShell or Command Prompt, or commonly installed applications, such as Java or Python. Adversaries utilize these tools to perform malicious activities, as they blend into the environment and are less likely to raise any alarms. |
||||
|
||||
Some examples of LoLBAS include: |
||||
|
||||
- PowerShell: Used for executing commands and scripts for various administrative functions. |
||||
- Cscript and Wscript: Used for executing VBScript and JScript files. |
||||
- Certutil: Used for updating certificate store but can also be leveraged to download files from the internet. |
||||
|
||||
## Why LoLBAS are popular among adversaries? |
||||
|
||||
There are several reasons why adversaries choose to use LoLBAS for their malicious purposes: |
||||
|
||||
- **No additional software required**: As these tools are already a part of the target system, there is no need to install new software that could potentially be detected. |
||||
- **Ease of use**: Many LoLBAS provide powerful capabilities without requiring complex coding. As a result, adversaries can swiftly implement and execute tasks using them. |
||||
- **Masquerading as legitimate actions**: Since LoLBAS are typically used for legitimate purposes, suspicious activities using these tools can blend in with regular traffic, making it difficult to identify and detect. |
||||
|
||||
## Challenges posed by LoLBAS |
||||
|
||||
Utilizing LoLBAS presents unique challenges in cyber security due to the following reasons: |
||||
|
||||
- **Difficulty in detection**: Identifying and differentiating between malicious and legitimate uses of these tools is a challenging task. |
||||
- **False positives**: Blocking, limiting, or monitoring the usage of LoLBAS frequently leads to false positives, as legitimate users might also rely on these tools. |
||||
|
||||
## Securing against LoLBAS attacks |
||||
|
||||
To protect against LoLBAS-based attacks, organizations should consider taking the following steps: |
||||
|
||||
- **Monitor behavior**: Establish baselines of normal system behavior and monitor for deviations, which could suggest malicious use of LoLBAS. |
||||
- **Least privilege principle**: Apply the principle of least privilege by limiting user permissions, reducing the potential attack surface. |
||||
- **Harden systems**: Remove or disable unnecessary tools and applications that could be exploited by adversaries. |
||||
- **Educate users**: Train users on the risks and signs of LoLBAS usage and encourage them to report suspicious activity. |
||||
- **Employ advanced security solutions**: Use technologies like Endpoint Detection and Response (EDR) and behavioral analytics to detect abnormal patterns that could be associated with LoLBAS abuse. |
||||
|
||||
## Conclusion |
||||
|
||||
LoLBAS present a significant challenge to cyber security, as they blend in with legitimate system activities. However, overcoming this challenge is possible through a combination of proactive monitoring, system hardening, and user education. |
||||
|
||||
Ensure you are well prepared to identify and mitigate LoLBAS attacks by following the recommendations provided in this guide. Stay vigilant and stay secure! |
||||
|
||||
- [@article@LOLBAS project](https://lolbas-project.github.io/#) |
||||
- [@official@LOLBAS project](https://lolbas-project.github.io/#) |
||||
- [@article@Understanding the risks of LOLBAS in security](https://pentera.io/blog/the-lol-isnt-so-funny-when-it-bites-you-in-the-bas/) |
||||
- [@video@LOLBAS T1105, MS Process Abuse](https://www.youtube.com/watch?v=fq2_VvAU29g) |
@ -1,22 +1,8 @@ |
||||
# loopback |
||||
|
||||
Loopback is an essential concept in IP terminology that refers to a test mechanism used to validate the operation of various network protocols, and software or hardware components. The primary function of the loopback feature is to enable a device to send a data packet to itself to verify if the device's network stack is functioning correctly. |
||||
**Loopback** refers to a special network interface used to send traffic back to the same device for testing and diagnostic purposes. The loopback address for IPv4 is `127.0.0.1`, while for IPv6 it is `::1`. When a device sends a request to the loopback address, the network data does not leave the local machine; instead, it is processed internally, allowing developers to test applications or network services without requiring external network access. Loopback is commonly used to simulate network traffic, check local services, or debug issues locally. |
||||
|
||||
## Importance of Loopback |
||||
Learn more from the following resources: |
||||
|
||||
The concept of loopback is critical for the following reasons: |
||||
|
||||
- **Troubleshooting**: Loopback helps in diagnosing and detecting network connectivity issues. It can also help ascertain whether an application or device is correctly processing and responding to incoming network traffic. |
||||
- **Testing**: Loopback can be used extensively by developers to test software applications or components without external network access. This ensures that the software behaves as expected even without a working network connection. |
||||
|
||||
## Loopback Address |
||||
|
||||
In IP terminology, there's a pre-allocated IP address for loopback. For IPv4, the reserved address is `127.0.0.1`. For IPv6, the loopback address is `::1`. When a device sends a packet to either of these addresses, the packet is rerouted to the local device, making it the source and destination simultaneously. |
||||
|
||||
## Loopback Interface |
||||
|
||||
Apart from loopback addresses, there's also a network device known as the "loopback interface." This interface is a virtual network interface implemented in software. The loopback interface is assigned a loopback address and can be used to emulate network connections for various purposes, such as local services or inter-process communications. |
||||
|
||||
## Summary |
||||
|
||||
Loopback plays a crucial role in IP technology by enabling devices to run diagnostic tests and validate the correct functioning of software and hardware components. Using the loopback addresses for IPv4 (`127.0.0.1`) and IPv6 (`::1`), it allows network packets to circulate internally within the local device, facilitating developers to test and verify network operations. |
||||
- [@article@What is a loopback address?](https://www.geeksforgeeks.org/what-is-a-loopback-address/) |
||||
- [@article@Understanding the loopback address and loopback interfaces](https://study-ccna.com/loopback-interface-loopback-address/) |
@ -1,35 +1,8 @@ |
||||
# MAC-based |
||||
|
||||
_Mandatory Access Control (MAC)_ is a robust security model when it comes to hardening, as it enforces strict policies on operating systems and applications regarding system access. In MAC-based hardening, the end-users are not allowed to modify access controls on your system. |
||||
**Mandatory Access Control (MAC)** is a security model in which access to resources is governed by predefined policies set by the system or organization, rather than by individual users. In MAC, access decisions are based on security labels or classifications assigned to both users and resources, such as sensitivity levels or clearance levels. Users cannot change these access controls; they are enforced by the system to maintain strict security standards and prevent unauthorized access. MAC is often used in high-security environments, such as government or military systems, to ensure that data and resources are accessed only by individuals with appropriate authorization. |
||||
|
||||
## How MAC-based Hardening Works |
||||
Learn more from the following resources: |
||||
|
||||
Typical MAC mechanisms work based on predefined security attributes or labels. These labels determine access permissions and are integrated within the system to classify data, resources, and users. Once these labels are in place, the operating system or a trusted security kernel rigorously enforces the constraints on how they access data. |
||||
|
||||
## Benefits of MAC-Based Hardening |
||||
|
||||
MAC-based hardening offers numerous benefits for organizations seeking to improve their cybersecurity posture: |
||||
|
||||
- **Enforced Security Policies**: MAC policies can be pre-configured in accordance with your organization's security requirements, ensuring consistency on all systems. |
||||
- **Limited Access**: Users have limited access to resources, which reduces the potential for insider threats and accidental leaks of sensitive data. |
||||
- **Protection of Sensitive Data**: By preventing unauthorized users from accessing sensitive data, MAC-based hardening helps protect against data breaches and other cybersecurity risks. |
||||
- **Auditing and Compliance**: MAC-based hardening mechanisms help facilitate audits and compliance with industry regulations. |
||||
|
||||
## Popular MAC-based Models |
||||
|
||||
There are various MAC models implemented in modern software systems. Some of the most popular models include: |
||||
|
||||
- **Bell-LaPadula (BLP) Model**: Designed for confidentiality, the BLP Model enforces the "no read up, no write down" rule, meaning that users may only read data at the same or lower levels of sensitivity, while only allowing data to be written to the same or higher levels of sensitivity. |
||||
- **Biba Model**: Focusing on integrity, the Biba Model enforces the "no write up, no read down" rule, which works opposite to BLP Model. |
||||
- **Clark-Wilson Model**: The Clark-Wilson Model emphasizes well-formed transactions, separation of duties, and certification processes to maintain data integrity and confidentiality. |
||||
|
||||
## Implementing MAC-Based Hardening |
||||
|
||||
To implement MAC-based hardening, it's important to follow these general steps: |
||||
|
||||
- **Establish Security Policies**: Define clear policies and guidelines, including security labels, for the various data classifications, users, and resources. |
||||
- **Select an Appropriate MAC Model**: Choose a MAC model suitable for your organization's needs and implement it across your systems. |
||||
- **Train Staff**: Provide training to your staff to ensure understanding and adherence to your organization's MAC-based policies. |
||||
- **Monitor and Audit**: Continually monitor the system for deviations from the MAC policies and perform periodic audits to verify their enforcement. |
||||
|
||||
In summary, MAC-based hardening offers robust access controls by enforcing strict policies in accordance with your organization's security requirements. In doing so, it reduces the potential for unauthorized access to data and resources, ultimately enhancing your cybersecurity posture. |
||||
- [@video@Mandatory Access Control (MAC) Models](https://www.youtube.com/watch?v=mNN-fEboRAA) |
||||
- [@article@What is Mandatory Access Control?](https://nordlayer.com/learn/access-control/mandatory-access-control/) |
||||
|
@ -1,32 +1,8 @@ |
||||
# MAN |
||||
|
||||
A Metropolitan Area Network **(MAN)** is a type of computer network that spans across a metropolitan area or a large geographical area, typically covering a city or a region. It is designed to interconnect various local area networks **(LANs)** and wide area networks **(WANs)** to enable communication and data exchange between different locations within the metropolitan area. |
||||
A **Metropolitan Area Network (MAN)** is a type of network that spans a city or large campus, connecting multiple local area networks (LANs) within that geographic area. MANs are designed to provide high-speed data transfer and communication services to organizations, institutions, or businesses across a city. They support a variety of applications, including internet access, intranet connectivity, and data sharing among multiple locations. Typically, MANs are faster and cover a broader area than LANs but are smaller in scope compared to wide area networks (WANs). |
||||
|
||||
## Examples of MAN |
||||
Learn more from the following resources: |
||||
|
||||
Some examples of Metropolitan Area Networks **(MANs)** include: |
||||
|
||||
1. **Cable TV Networks:** Many cable TV networks also offer internet services to their subscribers, creating a MAN that covers a specific metropolitan area. |
||||
2. **Educational Institutions:** Universities, colleges, and research institutions often have their own MANs to interconnect their campuses and facilities spread across a metropolitan area. |
||||
3. **City-Wide Wi-Fi Networks:** Some cities have established their own Wi-Fi networks to provide internet access to residents and businesses, creating a MAN that covers the entire city. |
||||
4. **Public Transportation Networks:** Some metropolitan areas have implemented MANs to provide internet connectivity on public transportation networks such as buses and trains. |
||||
|
||||
## Advantages of MAN |
||||
|
||||
- **Improved Connectivity:** MANs provide a high-speed and reliable means of communication between different locations within a metropolitan area, facilitating efficient data exchange and collaboration among organizations, businesses, and individuals. |
||||
|
||||
- **Cost-Effective:** Compared to establishing multiple separate networks for each location, implementing a MAN can be more cost-effective as it allows for shared infrastructure and resources, reducing overall costs of networking equipment and maintenance. |
||||
|
||||
- **Scalability:** MANs are highly scalable and can be expanded to accommodate new locations or increased network traffic as the metropolitan area grows, making it a flexible solution for evolving connectivity needs. |
||||
|
||||
- **Centralized Management:** A MAN allows for centralized management of the network, making it easier to monitor and control network operations, troubleshoot issues, and implement security measures. |
||||
|
||||
## Disadvantages of MAN |
||||
|
||||
- **Complexity:** MANs can be complex to design, implement, and maintain due to their large scale and geographical spread. They require skilled network administrators and engineers to manage and troubleshoot the network effectively. |
||||
|
||||
- **Cost of Implementation:** Establishing a MAN requires significant upfront investment in networking infrastructure and equipment, which can be a barrier to entry for smaller organizations or municipalities. |
||||
|
||||
- **Limited Coverage:** MANs are typically limited to metropolitan areas, and their coverage may not extend to remote or rural areas outside the metropolitan region, which can pose connectivity challenges for organizations located in those areas. |
||||
|
||||
- **Vulnerability to Single Point of Failure:** Since MANs are centralized networks, they are susceptible to a single point of failure, such as a failure in the main network node, which can disrupt the entire network and impact communication and data exchange among connected locations. |
||||
- [@article@What is a Metropolitan Area Network?](https://www.cloudflare.com/en-gb/learning/network-layer/what-is-a-metropolitan-area-network/) |
||||
- [@video@Network Types: MAN](https://youtu.be/4_zSIXb7tLQ?si=1jTQ5C9PT4WUOztP&t=183) |
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue