top of page

Redis vs. SQL Server (MOT)


ื›ื‘ืจ ื–ืžืŸ ืžื” ืฉืื ื™ ืžืขื•ื ื™ื™ืŸ ืœืœืžื•ื“ ืขืœ Redis, ืžื‘ื—ื™ื ืชื™ ื”ื“ืจืš ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœืœืžื•ื“ ืขืœ ื–ื” ื”ื™ื ืœืžืฆื•ื ืงืฉืจ ื™ืฉื™ืจ ืœืžื” ืฉืื ื™ ืขื•ืฉื” ื”ื™ื•ื ื‘ื™ื•ื ื™ื•ื.

ืชื—ื™ืœื”, ืžื”ื• Redis โ€“

Redis ื”ื™ื ื• ืžืกื“ ื ืชื•ื ื™ื ืฉืขื•ื‘ื“ ื› In โ€“ Memory ื‘ืชืฆื•ืจืช Key-Value.

ื”ืžื ื•ืข ื”ื™ื ื• Open- Source ืžืื•ื“ ื ืคื•ืฅ ืฉืฉื•ืงืœ ื›700KB ื‘ืœื‘ื“. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื›ืžืกื“ ื ืชื•ื ื™ื ืœื›ืœ ื“ื‘ืจ ืื• ื›ืฉื’ื‘ืช caching โ€“ ืฉื™ืžื•ืฉ ืขื™ืงืจื™ ืืฆืœ ื—ื‘ืจื•ืช ืœื˜ื•ื‘ืช Session-State.

ื”ื”ืชืงื ื” ืฉืœ Redis ืคืฉื•ื˜ื” ืžืื“ (ื”ื’ืจืกื ื”ืจืฉืžื™ืช ืžื‘ื•ืกืกื•ืช ืžืขืจื›ื•ืช Linux. ืืš, ืงื™ื™ืžืช ื’ื ื’ืจืกื” ืขืœ Windows

ืขืœ Redis ื›ื‘ืจ ืฉืžืขืชื™ ื“ื™ื™ ืžื–ืžืŸ ื•ืžืฉืชืžืฉื™ื ื‘ื–ื• ืœื ืžืขื˜ ืžืœืงื•ื—ื•ืชื™ื ื•, ืืš ืžื” ืฉื“ื—ืฃ ืื•ืชื™ ืœื”ืชื—ื™ืœ ืœืœืžื•ื“ ืืช ื”ื ื•ืฉื ื”ื™ื™ืชื”, ื”ืจืฆืื” ืฉืฉืžืขืชื™ ื‘Azure Meetup ืฉื”ืชืงื™ื™ืžื” ื‘ืคื‘ืจื•ืืจ 2017, ืœืฆืขืจื™ ืขื“ื™ื™ืŸ ืœื ื”ืขืœื• ืืช ื”ื”ืงืœื˜ื•ืช, ืื‘ืœ ื”ื”ืจืฆืื” ื”ื™ื™ืชื” ืžืงืจื” ืœืงื•ื— ืฉื”ืกื‘ื™ืจ ืžื“ื•ืข ื”ื ื”ืชื—ื™ืœื• ืœื”ืฉืชืžืฉ ืขื Redis.

ื—ื’ื™ (Hagai Luger), ืกื™ืคืจ ืฉื‘ื—ื‘ืจืช ื”ื–ื ืง ืฉืขื‘ื“, ืขื‘ื“ื• ืžื•ืœ ืžืกื“ ื ืชื•ื ื™ื ื•ืœื ื”ื™ื” ืœื”ื DBA, ื›ืš ื—ื™ืคืฉื• ืคื™ืชืจื•ืŸ ืฉื™ื•ื›ืœ ืœื‘ืฆืข Cashing, ื•ืœืงื‘ืœ ืคืชืจื•ืŸ ืœื‘ืขื™ื™ืช ื‘ื™ืฆื•ืขื™ื ื‘ืฆื•ืจื” ืงืœื” ื ื•ื—ื” ื•ืคืฉื•ื˜ื”, ื”ื”ื˜ืžืขื” ื”ื™ื™ืชื” ืงืœื” ื•ืคืฉื•ื˜ื” ื•ื”ื‘ื™ืฆื•ืขื™ื ื”ื™ื• ืžืขื•ืœื™ื.

ืื ื™ ืจืฆื™ืชื™ ืœื‘ืฆืข ื”ืฉื•ื•ืืช ื‘ื™ืฆื•ืขื™ื ื‘ื™ืŸ ืคื™ืชืจื•ืŸ ืžื•ืฆืข ื‘ - SQL Server.

ืœื›ืŸ, ื”ืฉืชืžืฉืชื™ ืขื ื”Demo ืฉืœ Microsoft, ืœื”ื“ื’ืžืช ืฉื™ืžื•ืฉ ื•ื”ืฉื•ื•ืืช ื‘ื™ืฆื•ืขื™ื ื‘ืฉืจืชื™ SQL Server 2014 ื•ืžืขืœื” ืขื ืฉื™ืžื•ืฉ ื‘In โ€“ Memory.

ื ื™ืชืŸ ืœืœืžื•ื“ ื™ื•ืชืจ ื‘2 ื”ื“ื’ืžื•ืช ืฉื‘ื•ืฆืขื• ืขื ื”DEMO โ€“

ื‘ื”ื“ื’ืžื” ืฉืœ ื”Demo, ืžื‘ื“ื™ืœื™ื ื‘ื™ืŸ ืžืฆื‘ ื”ื‘ืกื™ืก-

  1. ืžืฆื‘ ื‘ืกื™ืก โ€“ ืขื‘ื•ื“ื” ืžื•ืœ ื˜ื‘ืœื” ืจื’ื™ืœื” โ€“ aka Base Table.

  2. ืžืฆื‘ ืจืืฉื•ืŸ โ€“ ื”ืคื™ื›ืช ื”ื˜ื‘ืœื” ืœื˜ื‘ืœื” ื‘ื–ื›ืจื•ืŸ โ€“ DURABILITY = SCHEMA_AND_DATA

  3. ืžืฆื‘ ืฉื ื™ โ€“ ืฉื™ื ื• ืžืฆื‘ ื”ื˜ื‘ืœื” ืœ - DURABILITY = SCHEMA_ONLY

  4. ืžืฆื‘ ืฉืœื™ืฉื™ โ€“ ืฉื™ื ื•ื™ ื”ืคืจื•ืฆื“ื•ืจื” ืœ NATIVE_COMPILATION โ€“(DLL)

  5. ืžืฆื‘ ืจื‘ื™ืขื™ โ€“ ืฉื™ื ื•ื™ DURABILITY(ACID) ื‘ืจืžืช ืžืกื“ ื”ื ืชื•ื ื™ื DELAYED_DURABILITY = FORCED

ื›ืขืช ื ื•ืกื™ืฃ ืขื•ื“ 2 ืชื”ืœื™ื›ื™ื ื›ื“ื™ ืœื—ื‘ืจ ืืช Redis ืœDemo โ€“

ืชื”ืœื™ืš ืจืืฉื•ืŸ (ืžืฆื‘ ื—ืžื™ืฉื™)-

ืคืจื•ื™ืงื˜ ืžืงื•ืจ - RediSQL

ืขื‘ื•ื“ื” ืขื ืคืจื•ื™ืงื˜ ืงื™ื™ื - RediSqlโ€“ืงืœื™ื™ื ื˜ ืœืขื‘ื•ื“ื” ืžื•ืœ Redis ืž- SQL Server โ€“ ืžืืžืจ ื‘ืขื‘ืจื™ืช

ืžื” ืฉื”ื•ืกืคืชื™ ื”ื™ื• ืคืจื•ืฆื“ื•ืจื•ืช ืฉืขื˜ืคื• ืืช ื”ื›ืœื™ื ืฉืœ RediSQL ื•ื‘ืฆืขื ื‘ืœื™ ืฉื™ื ื•ื™ ื‘ืืคืœื™ืงืฆื™ื” ื”ื™ื” ืืคืฉืจ ืœื‘ื“ื•ืง ืืช ื”ืขื‘ื•ื“ื” ืขื Redis.

ื ื™ืชืŸ ืœื”ื•ืจื™ื“ ืืช ื”ืงื•ื“ - ื›ืืŸ

ื›ืžื” ื‘ืขื™ื•ืช ื‘ืชื”ืœื™ืš โ€“

  1. ื”ื•ืกืคืชื™ ืžืขื‘ืจ ื‘SQL ื›ื“ื™ ืœื”ื’ื™ืข ืœRedis ืœืžืจื•ืช ืฉืœื ื”ื™ื” ืฆื•ืจืš ื‘ื›ืš.

  2. ื ื™ืจืื” ืฉSQL ืžื ืฆื— ื‘ืขื ืง โ€“ ื ื•ื’ื“ ืืช ืžื” ืฉื ื™ืกื™ืชื™ ืœื”ื•ื›ื™ื—.

  3. ื”ืืคืœื™ืงืฆื™ื” ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜ ื“ื•ื’ืžืช DMV ืฉืœ ื ื’ื™ืขื” ื‘ื˜ื‘ืœืื•ืช, ืืฉืจ ืขื‘ืจืชื™ ื“ืจืš Redis ืœื ื”ื™ื™ืชื” ืฉื•ื ื ื’ื™ืขื” ื‘ื˜ื‘ืœืื•ืช SQL Server ื›ืš ื”ื ืชื•ื ื™ื ืœื ื”ืฆื™ื’ื• ืืช ื”ืžืกืคืจื™ื ื”ืจืœื•ื•ื ื˜ื™ื.

ืชื”ืœื™ืš ืฉื ื™ (ืžืฆื‘ ืฉื™ืฉื™)-

ื”ืชื—ืœืชื™ ืœืขื‘ื•ื“ ืขืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืœ Microsoft ืœื˜ื•ื‘ืช ื”ื”ื•ื›ื—ื”,

ืฉื™ื ื™ืชื™ ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืชื“ื” ืœืขื‘ื•ื“ ื‘2 ืคืœื˜ืคื•ืจืžื•ืช โ€“ Redis + SQL Server. ื‘ืขืฆื, ืคืชื—ืชื™ Class ื ื•ืกืฃ ืฉืœ TicketReservationDetail ืืฉืจ ื”ื›ื™ืœ ืคืจื˜ื™ื ืขืœ ื”ื™ืฉื•ืช.

ื•ื”ื•ืกืคืชื™ ืงื™ืฉื•ืจ ืœืขื‘ื•ื“ื” ืขืœ Redis ื“ืจืš StackExchange.Redis

ืฉื™ื ื™ืชื™ ืืช ื”ื“ื’ื™ืžื” ืฉืœ Redis ื‘ื’ืจืฃ ื‘ืžืงื•ื ืœื˜ืจื ื–ืงืฆื™ื•ืช ืœืฉื ื™ื” ืœื›ืžื•ืช ืคืขื•ืœื•ืช ื‘ืฉื ื™ื” ื‘ื”ื ื—ื” ืฉื›ืœ ืคืขื•ืœื” ืžืชื‘ืกืกืช ืขืœ ืคืขื•ืœื” ื‘ื•ื“ื“ืช ื‘ื–ืžืŸ ื ืชื•ืŸ, ื”ืจื™ ืื ื™ ื”ื™ื—ื™ื“ื™ ืฉืžืคืขื™ืœ ืืช ื”ืฉืจืช.

Single threaded nature of Redis

Redis uses a mostly single threaded design. This means that a single process serves all the client requests, using a technique called multiplexing. This means that Redis can serve a single request in every given moment, so all the requests are served sequentially. This is very similar to how Node.js works as well. However, both products are often not perceived as being slow. This is caused in part by the small amount of time to complete a single request, but primarily because these products are designed to not block on system calls, such as reading data from or writing data to a socket.

I said that Redis is mostly single threaded since actually from Redis 2.4 we use threads in Redis in order to perform some slow I/O operations in the background, mainly related to disk I/O, but this does not change the fact that Redis serves all the requests using a single thread.

ืžืงื•ืจ: https://redis.io/topics/latency

ื”ืคืขื•ืœื•ืช ื”ืชื‘ืกืกื• ืขืœ 2 ืืœืžื ื˜ื™ื ืคืฉื•ื˜ื™ื INSERT / SELECT โ€“ Set/Get

ื ื™ืชืŸ ืœื”ื•ืจื™ื“ ืืช ื”ืืคืœื™ืงืฆื™ื” + ื”ืฉื™ื ื•ื™ื™ื ื›ืืŸ.

ืžืขื‘ืจ ืœืชืฆื•ื’ื” ื‘ื’ืจืฃ ืฉื”ืจืืชื” ืฉื™ื ื•ื™ ืžืฉืžืขื•ืชื™ ื‘ืคืขื•ืœื•ืช โ€“

ืœื‘ื“ื™ืงืช ื›ืžื•ืช ื”ื ืชื•ื ื™ื ื‘SQL Server ื”ืฉืชืžืฉื™ ื‘SSMS ื”ืžื•ื›ืจ. ื•ื‘ืฉื‘ื™ืœ ืœื“ื’ื•ื ืืช ื›ืžื•ืช ื”ืจืฉื•ืžื•ืช ื‘Redis ื”ืฉืชืžืฉืชื™ ื‘ Redis Desktop Manager

ื‘ื“ืงืชื™ ืืช ื›ืžื•ืช ื”ืจืฉื•ืžื•ืช ืฉื ื›ื ืกื• ืœื˜ื‘ืœื” ืœืื—ืจ ื›ืœ ื”ืคืขืœื”, ืœื˜ื•ื‘ืช SQL Server ื”ืงืฆืืชื™ ื›ืคื•ืœ ืžื”ื–ืžืŸ ืฉืœ ื”Redis.

SSMS- SQL Server - 8000 rows

Redis - 32599 keys = rows.

32 ืืœืฃ ื‘Redis ืืœ ืžื•ืœ 8 ืืœืฃ ื‘ืฉืจืช SQL Server.

Featured Posts
Check back soon
Once posts are published, youโ€™ll see them here.
Recent Posts
Archive
Search By Tags
No tags yet.
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page