Back-end architect technology map: this is what you want

The public account [National Programmer] Gives back fan benefits: cash red envelopes and book delivery activities are in progress , click to participate !

GitHub carefully selected: recommend a GitHub high-quality open source project every day

Every choice in life is your own choice.

Hello everyone, I am Yanxuan.

The project I bring to you today is: Back-end architect technical map

The role of the back-end in a technical team is self-evident, and learning the knowledge of the back-end requires years and years of actual combat. The back-end is a broad technology stack with a wide range of knowledge points, so there is a learning technology map. On the one hand, it can show how many technology stacks there are in the back-end, and on the other hand, it can also help us plan how to learn these technology stacks and check for missing holes. .

Take the server cache as an example, it includes the following:

Web cache

  1. nuster - nuster cache
  2. varnish - varnish cache
  3. squid - squid cache

Memcached

  1. "Memcached Tutorial"
  2. "In-depth understanding of Memcached principle"
    1. Use multiplexing technology to improve concurrency.
    2. Slab allocation algorithm: memcached allocates memory space to Slab, the default is 1MB. After being allocated to the slab, the slab is divided into chunks of the same size. Chunk is the memory space used to cache records. The size of the chunk increases by 1.25 times by default. The advantage is that it will not apply for memory frequently and improve IO efficiency. The disadvantage is that there will be a certain amount of memory waste.
  3. "The Working Principle of Memcached Software"
  4. "Memcache Technology Sharing: Introduction, Use, Storage, Algorithm, Optimization, Hit Rate"
  5. The difference between "add, set, and replace in memcache"
    is that when the key exists or does not exist, the return value is true and false.
  6. "Comprehensive Analysis of memcached"

Redis

  1. "Redis Tutorial"
  2. "The underlying principle of redis"
    1. Use ziplist to store linked lists. Ziplist is a kind of compressed linked list. Its advantage is that it can save more memory space because the contents it stores are all in a contiguous memory area.
    2. Use skiplist (skip list) to store ordered collection objects, first look up from high level in search, time complexity is equivalent to red-black tree, easy to implement, no lock, good concurrency.
  3. "Redis Persistence Mode"
    1. RDB method: regular backup snapshots, often used for disaster recovery. Advantages: The backup process is performed through the fork process, which does not affect the main process, and the RDB is faster in restoring large data sets than AOF. Disadvantages: data will be lost.
    2. AOF mode: save operation log mode. Advantages: less data loss during recovery, disadvantages: large files and slow recovery.
    3. You can also combine the two.
  4. "Distributed Cache-Sequence 3-Atomic Operation and CAS Optimistic Locking"

Architecture

"Redis Single Thread Architecture"

Recycling strategy

"Redis Recovery Strategy"

Three

  1. Official website
    "Comparison between Tair and Redis"
  2. Features: You can configure the number of backup nodes, and synchronize to the backup nodes through asynchronous synchronization
  3. Consistent Hash algorithm.
  4. Architecture: Similar to the design idea of ​​Hadoop, there are Configserver, DataServer, and Configserver to detect through heartbeat, and Configserver also has a master/backup relationship.
  5. Several storage engines:
    1. MDB, completely memory, can be used to store Session and other data.
    2. Rdb (similar to Redis), lightweight, remove operations such as aof, and support Restfull operations
    3. LDB (LevelDB storage engine), persistent storage, LDB as the persistence of RDB, Google implementation, more efficient, the theoretical basis is LSM (Log-Structured-Merge Tree) algorithm, now the data is modified in the memory, when it reaches a certain amount (and The old data summarized in the memory is written to the disk together) and then written to the disk, the storage is more efficient, the county is like the Hash algorithm.
    4. Tair uses shared memory to store data. If the service is down (not the server), the data will still be there after restarting the service.

For more content, please read it yourself.

Project address: https://github.com/xingshaocheng/architect-awesome

Welcome to pay attention to my technical public number: national programmers , our goal: output dry goods

  1. Share original technical articles every day
  2. Massive free technical materials and video learning resources
  3. Share the ways to make money and lead programmers to financial freedom
Picture name

Guess you like

Origin blog.csdn.net/ddnosh/article/details/109095153