Computer >> Máy Tính >  >> Lập trình >> Redis

Xây dựng ứng dụng tài chính của bạn trên RedisTimeSeries

Nói rộng ra, có hai loại nhà đầu tư trên thế giới. Nhà đầu tư cơ bản xem xét các chỉ số cơ bản, chẳng hạn như mô hình kinh doanh của công ty, doanh thu, thu nhập, dòng tiền, định giá hiện tại, rủi ro và triển vọng tăng trưởng, khi quyết định có đầu tư vào một công ty hay không. Warren Buffett trở nên nổi tiếng và là một trong những người đàn ông giàu nhất thế giới nhờ tìm ra các công ty bị định giá thấp thông qua nghiên cứu cơ bản của mình.

Mặt khác, nhà đầu tư kỹ thuật rất ít hoặc không chú ý đến các nguyên tắc cơ bản của công ty, thay vào đó tập trung sự chú ý của họ vào việc tạo ra các tín hiệu mua, bán và nắm giữ từ hàng trăm chỉ báo kỹ thuật. Các nhà đầu tư kỹ thuật này giao dịch hàng ngày, hàng tuần hoặc hàng tháng.

Tôi không ở đây để tranh luận ủng hộ hay phản đối một trong những phong cách đầu tư này. Nhưng cả nhà đầu tư cơ bản và kỹ thuật đều nghiên cứu, phân tích và đưa ra quyết định dựa trên hàng trăm, nếu không phải hàng nghìn nguồn dữ liệu.

Các nhà đầu tư cơ bản nghiên cứu bảng cân đối kế toán, báo cáo thu nhập, báo cáo lưu chuyển tiền tệ, xu hướng nhân khẩu học, xu hướng chuyên đề và xu hướng xã hội trên hàng nghìn công ty và hàng trăm ngành công nghiệp trên toàn cầu. Họ xây dựng các mô hình tài chính hoặc phân tích dựa trên dữ liệu đó để hiểu rõ hơn về quỹ đạo của các công ty và triển vọng tăng trưởng của các công ty.

Các nhà đầu tư kỹ thuật xem xét hàng trăm chỉ báo kỹ thuật hàng giờ hoặc hàng ngày để tìm ra các tín hiệu đầu tư. Các nhà đầu tư dựa vào các chỉ báo kỹ thuật phải xử lý một lượng lớn dữ liệu trên nhiều khung thời gian để xây dựng chiến lược giao dịch của họ. Họ có thể cần truy vấn một số lượng lớn các chỉ số và yêu cầu câu trả lời gần như ngay lập tức. Họ có thể cần nhanh chóng điều chỉnh các thuật toán và chiến lược giao dịch của mình với các thị trường thay đổi nhanh chóng. Redis Enterprise có thể giải quyết tất cả những thách thức này.

Gần đây, tôi đã viết về lý do tại sao Redis Enterprise là một công cụ thiết yếu cho ngành tài chính. Trong bài đăng trên blog này, tôi sẽ chỉ ra cách RedisTimeSeries có thể được sử dụng để lưu trữ, tổng hợp và truy vấn giá cổ phiếu cũng như các chỉ số kỹ thuật. Các nguyên tắc tôi sẽ phác thảo cũng có thể được sử dụng để lưu trữ và truy vấn thông tin tài chính từ các công ty hoặc bất kỳ dữ liệu chuỗi thời gian nào khác được các nhà đầu tư cơ bản sử dụng.

Mô-đun RedisTimeSeries có thể nhập và truy vấn hàng triệu sự kiện, mẫu và dữ liệu giá cả. RedisTimeSeries phù hợp nhất để lưu trữ các cặp thời gian và giá trị có liên quan để giúp xác định xu hướng trong các trường hợp sử dụng, từ IoT đến chăm sóc sức khỏe đến tài chính. RedisTimeSeries cung cấp các tổng hợp như trung bình, tổng, tối thiểu, tối đa, độ lệch chuẩn, phạm vi, v.v. để giúp bạn dễ dàng phân tích dữ liệu và đưa ra quyết định.

Theo dõi giá cổ phiếu với RedisTimeSeries

Trong bài đăng này, tôi sẽ minh họa một mô hình sử dụng RedisTimeSeries để lưu trữ giá cổ phiếu và các chỉ báo kỹ thuật. Tôi sẽ đề cập đến việc tạo các chuỗi thời gian khác nhau cho giá và chỉ số, chỉ ra cách tạo tổng hợp trên đầu chuỗi thời gian thô và chứng minh cách dễ dàng nhập và truy vấn chuỗi thời gian lớn bằng cách sử dụng các lệnh RedisTimeSeries khác nhau. Tôi cũng đã cung cấp mã mẫu bằng Python mà bạn có thể sử dụng làm điểm bắt đầu cho trường hợp sử dụng của riêng mình.

Đúng hay sai, nhiều người coi Chỉ số Trung bình Công nghiệp Dow Jones (DJIA) là điểm chung cho nền kinh tế Hoa Kỳ. Tôi muốn theo dõi một chỉ báo kỹ thuật của tất cả 30 cổ phiếu trong DJIA cùng với giá và khối lượng giao dịch của các cổ phiếu. Tôi bắt đầu mọi thứ bằng cách theo dõi giá cổ phiếu của Goldman Sachs thuộc thành phần Dow và một trong những chỉ báo kỹ thuật cho cổ phiếu đó. Một trong những chỉ báo kỹ thuật yêu thích của tôi là Chỉ số Sức mạnh Tương đối (RSI). RSI là một chỉ báo xung lượng được sử dụng để đo lường một cổ phiếu có thể nằm trong vùng quá mua hoặc quá bán. Khi chỉ báo RSI di chuyển gần hoặc dưới 30, một cổ phiếu có thể được coi là quá bán và có thể tạo cơ hội mua. Tương tự như vậy, khi chỉ báo RSI di chuyển trên 70, nó có thể đang đi vào vùng quá mua và báo hiệu thời điểm tốt để bán.

Chỉ số sức mạnh tương đối cho Goldman Sachs Group

Xây dựng ứng dụng tài chính của bạn trên RedisTimeSeries

Trong giờ giao dịch, RSI, cũng giống như bất kỳ chỉ báo kỹ thuật nào khác, thay đổi khi các giao dịch được thực hiện dựa trên nhu cầu và nguồn cung cổ phiếu của Goldman Sachs. Chúng tôi có thể sử dụng mô-đun RedisTimeSeries để giúp trả lời một số câu hỏi chính:

  • Giá trị tối thiểu và lớn nhất cho chỉ báo kỹ thuật trong mỗi khoảng thời gian cụ thể là bao nhiêu?
    • Điều này sẽ cho phép bạn nhanh chóng xác định các điểm vào hoặc ra cho một giao dịch.
  • Phạm vi và độ lệch chuẩn của giá cổ phiếu trong một khoảng thời gian xác định là bao nhiêu?
    • Phạm vi và độ lệch chuẩn là các chỉ báo về sự biến động của giá cổ phiếu cơ bản.
  • Giá vào và giá ra có thể có lợi cho các giao dịch trên cổ phiếu này?
  • Giá trị của một chỉ báo kỹ thuật trên tất cả các cổ phiếu trong một khoảng thời gian xác định là bao nhiêu?

Chúng tôi có thể sử dụng các truy vấn RedisTimeSeries để xác định theo chương trình các giá trị RSI tối thiểu và tối đa cũng như giá cổ phiếu trong một khoảng thời gian được chỉ định. Ví dụ:điều gì sẽ xảy ra nếu tôi muốn tìm số RSI tối thiểu và tối đa trong mỗi khoảng thời gian 15 phút của ngày giao dịch? Khi RSI ở mức hoặc gần 30, tôi có thể muốn tạo một cảnh báo, đặt một giao dịch hoặc khởi động một quy trình giao dịch phức tạp khác để phân tích các chỉ báo kỹ thuật khác trước khi mua hoặc bán. Bất cứ điều gì bạn muốn làm đều có thể được mô hình hóa dễ dàng trong cơ sở dữ liệu RedisTimeSeries.

Mô hình dữ liệu cho giá cổ phiếu và các chỉ báo kỹ thuật

Cách dễ nhất để có trải nghiệm thực tế với RedisTimeSeries là chạy hình ảnh Docker cho RedisTimeSeries.

Thực thi lệnh sau để kéo và chạy hình ảnh Docker:

 docker run -p 6379:6379 -it --rm redis / redistimeseries 

Nhóm Redis đã đưa ra quyết định thiết kế có chủ ý để mô-đun RedisTimeSeries chứa một số liệu duy nhất trong mỗi chuỗi thời gian. Sự đơn giản này trong mô hình dữ liệu làm cho việc chèn và truy xuất dữ liệu siêu nhanh. Bạn có thể thêm chuỗi thời gian mới nếu cần mà không lo lắng về việc phá vỡ ứng dụng hiện có của mình. Điều đó có nghĩa là bạn có thể thêm các nguồn dữ liệu mới một cách dễ dàng mà không phải lo lắng về việc phá vỡ lược đồ cơ sở dữ liệu hoặc ứng dụng của bạn.

Khi bạn đã thiết lập và chạy vùng chứa RedisTimeSeries, bạn có thể kết nối với máy chủ (đảm bảo bạn có địa chỉ IP hoặc tên máy chủ phù hợp) bằng Python như sau:

 from redistimeseries.client import Client rts =Client (host ='127.0.0.1', port =6379) 

Với nguyên tắc thiết kế là giữ một số liệu duy nhất trong mỗi chuỗi thời gian, chúng tôi có thể lưu trữ giá cổ phiếu trong ngày và RSI cho từng cổ phiếu DJIA trong chuỗi thời gian của riêng nó. Dưới đây, tôi đã tạo một chuỗi thời gian cho Goldman Sachs Group, Inc. (NYSE:GS). Tôi đã đặt tên RSI trong ngày cho Goldman Sachs là ‘DAILYRSI:GS’ và tôi đã áp dụng nhiều nhãn khác nhau cho từng chuỗi thời gian — việc gắn nhãn chuỗi thời gian cho phép bạn truy vấn trên tất cả các khóa bằng cách sử dụng một nhãn.

 rts.create ('DAILYRSI:GS', label ={'SYMBOL':'GS', 'DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA', 'TIMEFRAME':'1_DAY', 'INDICATOR ':' RSI ',' COMPANYNAME ':' GOLDMAN_SACHS_GROUP '}) 

Ở đây, tôi đã tạo một chuỗi thời gian cho giá cổ phiếu trong ngày của Goldman Sachs được gọi là ‘INTRADAYPRICES:GS’ :

 rts.create ('INTRADAYPRICES:GS', label ={'SYMBOL':'GS', 'DESC':'SHARE_PRICE', 'INDEX':'DJIA', 'PRICEETYPE':'INTRADAY', 'COMPANYNAME ':' GOLDMAN_SACHS_GROUP '}) 

Tiếp theo, tôi đã tạo các tổng hợp khác nhau trên dữ liệu RSI trong khung thời gian 15 phút nhất định. (Chúng tôi có thể đã tạo các tổng hợp ở các khung thời gian dài hơn hoặc ngắn hơn để phù hợp với nhu cầu giao dịch của mình.) Các tổng hợp này sẽ cho phép chúng tôi xem xét các giá trị đầu tiên, cuối cùng, tối thiểu, tối đa và phạm vi cho RSI. Để tạo tổng hợp, trước tiên chúng tôi tạo chuỗi thời gian để lưu trữ tổng hợp và sau đó tạo quy tắc để điền chuỗi thời gian với giá trị tổng hợp. Trong trường hợp này, chúng tôi đã tạo một chuỗi thời gian có tên là ‘DAILYRSI15MINRNG:GS’ để lưu trữ phạm vi cho RSI trong khoảng thời gian 15 phút. ‘createrule’ áp dụng một hàm phạm vi trên dữ liệu thô ( ‘DAILYRSI:GS’ ) trong mỗi khung thời gian 15 phút và tổng hợp lại thành ‘DAILYRSI15MINRNG:GS’ .

 rts.create ('DAILYRSI15MINRNG:GS', label ={'SYMBOL':'GS', 'DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA', 'TIMEFRAME':'15_MINUTES', 'AGGREGATION ':' RANGE ',' INDICATOR ':' RSI ',' COMPANYNAME ':' GOLDMAN_SACHS_GROUP '}) rts.createrule (' DAILYRSI:GS ',' DAILYRSI15MINRNG:GS ',' range ', 900) 

Tại đây, tôi đã tạo một số quy tắc để tính toán phạm vi và độ lệch chuẩn cho giá cổ phiếu của Goldman Sachs trong mỗi khoảng thời gian 15 phút trong ngày giao dịch:

 rts.create ('INTRADAYPRICES15MINRNG:GS', label ={'SYMBOL':'GS', 'DESC':'SHARE_PRICE', 'INDEX':'DJIA', 'PRICEETYPE':'RANGE', 'AGGREGATION ':' RANGE ',' DURATION ':' 15_MINUTES ',' COMPANYNAME ':' GOLDMAN_SACHS_GROUP '}) rts.createrule (' INTRADAYPRICES:GS ',' INTRADAYPRICES15MINRNG:GS ',' range ', 900) rts.create (' INTRADAYPRICES15MINSTDP:GS ', label ={' SYMBOL ':' GS ',' DESC ':' SHARE_PRICE ',' INDEX ':' DJIA ',' PRICEETYPE ':' STDDEV ',' AGGREGATION ':' STDDEV ',' DURATION ':' 15_MINUTES ',' COMPANYNAME ':' GOLDMAN_SACHS_GROUP '}) rts.createrule (' INTRADAYPRICES:GS ',' INTRADAYPRICES15MINSTDP:GS ',' std.p ', 900) 

Bạn có thể tạo chuỗi thời gian cho tất cả 30 cổ phiếu trong Chỉ số Trung bình Công nghiệp Dow Jones (DJIA) theo cách tương tự.

Các phương pháp nhập dữ liệu

Có hai cách để nhập dữ liệu vào RedisTimeSeries. TS.ADD lệnh cho phép bạn thêm từng giá cổ phiếu hoặc chỉ báo kỹ thuật vào một chuỗi thời gian. Nhưng vì dữ liệu từ thị trường tài chính được tạo ra gần như liên tục và bạn cần thêm nhiều mẫu vào RedisTimeSeries, tốt hơn nên sử dụng TS.MADD phương pháp. Hàm MADD nhận một danh sách các bộ giá trị làm đối số. Mỗi bộ lấy tên của khóa chuỗi thời gian, dấu thời gian và giá trị:

Xây dựng ứng dụng tài chính của bạn trên RedisTimeSeries

Bạn có thể sử dụng lệnh Python sau để chèn dữ liệu vào khóa chuỗi thời gian:

 rts.madd () 

Truy vấn RedisTimeSeries

Như với hầu hết mọi thứ trong RedisTimeSeries, thật dễ dàng để truy vấn cơ sở dữ liệu. Phạm vi và độ lệch chuẩn đối với giá cổ phiếu hoặc một chỉ báo kỹ thuật là một dấu hiệu của sự biến động. Truy vấn sau sẽ cho bạn thấy phạm vi giá và độ lệch chuẩn của giá cổ phiếu Goldman Sachs trong khoảng thời gian 15 phút một lần:

 rts.range ('INTRADAYPRICES15MINRNG:GS', from_time =1603704600, to_time =1603713600) 

Truy vấn tổng hợp phạm vi này cung cấp cho bạn tập kết quả sau:

 [(1603704600, 1.75999999999999), (1603705500, 0.775000000000006), (1603706400, 0.730000000000018), (1603707300, 0.449999999999989), (1603708200, 0.3700000000000006), (1603706400, 0.730000000000018), (1603707300, 0.449999999999989), (1603708200, 0.370000000000000000 ), (1603711800, 0,629999999999995), (1603712700, 0,490000000000009), (1603713600, 0,27000000000001)] 

Như kết quả truy vấn này cho thấy, vào đầu ngày giao dịch lúc 9:30 sáng ngày 26 tháng 10 năm 2020 ET (dấu thời gian số nguyên =1603704600), cổ phiếu của Goldman Sachs đã biến động, giao dịch với phạm vi 1,75 đô la. Bây giờ, hãy so sánh điều này với 15 phút tiếp theo, bắt đầu từ 9:45 sáng ngày 26 tháng 10, (dấu thời gian số nguyên =1603705500), trong đó mức biến động giảm xuống với phạm vi 0,77 đô la. Phạm vi giá của cổ phiếu Goldman Sachs tiếp tục giảm trong khoảng thời gian 15 phút sau đó và sự biến động không bao giờ trở lại mức đã đạt được trong khoảng thời gian 15 phút mở cửa.

Dữ liệu này từ RedisTimeSeries có thể được trực quan hóa dễ dàng trong trang tổng quan và biểu đồ. Biểu đồ bên dưới cho thấy phạm vi giá của Goldman Sachs trong khoảng thời gian 15 phút:

Xây dựng ứng dụng tài chính của bạn trên RedisTimeSeries

Biểu đồ bên dưới hiển thị cùng một dữ liệu ở định dạng biểu đồ đường, cho thấy rằng phạm vi giá mà Goldman Sachs giao dịch trở nên chặt chẽ hơn nhiều khi thời gian diễn ra trong ngày (biểu đồ này hiển thị dấu thời gian số nguyên trên trục x):

Xây dựng ứng dụng tài chính của bạn trên RedisTimeSeries

Bạn có thể thực hiện một truy vấn tương tự với một số đo biến động khác — độ lệch chuẩn — như hàm tổng hợp:

 rts.range ('INTRADAYPRICES15MINSTDP:GS', from_time =1603704600, to_time =1603713600) 
 [(1603704600, 0,54657783830434), (1603705500, 0,23201149395202), (1603706400, 0,196072381345986), (1603707300, 0,160267138157647), (1603708200, 0,1169906213000900, 0,113700, 0,00310091837637610091837, 0,00310091837637610091837, 0,1003761009183763700, 0,006376100918376100918371 ), (1603711800, 0,163118915546951), (1603712700, 0,151417199675549), (1603713600, 0,0963889432843203)] 

Điều này mở ra nhiều khả năng hấp dẫn. Giả sử bạn muốn biết giá cổ phiếu của Goldman Sachs khi giá trị RSI trong ngày nằm trong khoảng từ 30 đến 40. Bạn có thể truy vấn chuỗi thời gian cho RSI và chuỗi thời gian của giá cổ phiếu để xác định các điểm đầu vào sinh lời cho một giao dịch.

Ở đây, tôi đang truy vấn giá trị RSI cho Goldman Sachs tại khung thời gian từ 1605260100 (9:35 sáng ET vào ngày 13 tháng 11 năm 2020) đến 1605260940 (9:49 sáng ET vào ngày đó).

 dailyGSRSIValue =rts.range ('DAILYRSI:GS', from_time =1605260100, to_time =1605260940) 

Truy vấn cho thấy giá trị RSI là 34.2996427544861 lúc 1605260820 (9:47 sáng theo giờ ET).

 [(1605260100, 75.0305441024708), (1605260160, 81.6673948350152), (1605260220, 83.8852225932517), (1605260280, 85.9469082344746), (1605260340, 94.380358601604252652652, 1605123736400, (1606781265265265265) ), (1605260580, 89.9407873066781), (1605260640, 57.1512452602676), (1605260700, 50.5638232111769), (1605260760, 35.2804436894564), (1605260820, 34.299642602676), (1605260700, 50.5638232111769), (1605260760, 35.2804436894564), (1605260820, 34.2996427544862, 5452.5526093, 64932093, 529340934093, 529360938093 

Giờ đây, tôi có thể truy vấn giá trong ngày của Goldman Sachs cho cùng khoảng thời gian với khoảng thời gian được sử dụng cho truy vấn RSI hoặc thay đổi truy vấn theo chương trình để phản ánh thời điểm giá trị RSI ở 34,29. Dưới đây là một ví dụ sử dụng cùng khung thời gian với truy vấn RSI.

 dailyGSPrice =rts.range ('INTRADAYPRICES:GS', from_time =1605260100, to_time =1605260940) 

Truy vấn trả về giá cổ phiếu của Goldman Sachs trong phạm vi được chỉ định:Vào lúc 1605260820 (9:47 sáng theo giờ ET ngày 13 tháng 11 năm 2020), giá là 217,18 đô la.

 [(1605260100, 216,57), (1605260160, 216,73), (1605260220, 217,08), (1605260280, 217,17), (1605260340, 217,87), (1605260400, 218,05), (1605260460, 217,91), (1605260520) ), (1605260580, 218.11), (1605260640, 218.02), (1605260700, 217.72), (1605260760, 217.22), (1605260820, 217.18), (1605260880, 217.46), (1605260940, 217.61)] 

RedisTimeSeries cung cấp một cách mạnh mẽ để truy vấn trên nhiều chuỗi thời gian cùng một lúc. TS.MGET lệnh cho phép bạn truy vấn trên nhiều chuỗi thời gian bằng cách sử dụng bộ lọc. Chúng tôi đã tạo nhiều chuỗi thời gian khác nhau và gắn nhãn cho chúng. Giờ đây, những nhãn đó có thể hoạt động như bộ lọc để truy vấn trên chuỗi thời gian.

Mã Python sau áp dụng hai bộ lọc dựa trên một vài nhãn:“DESC” và “TIMEFRAME”. Tham số “with_labels =False” cho phép trả về tập hợp kết quả mà không có nhãn cho mỗi giá trị:

 allRSIValues ​​=rts.mget (filter =['DESC =RELATIVE_STRENGTH_INDEX', 'TIMEFRAME =1_DAY'], with_labels =False) 

Truy vấn này sẽ đưa ra một kết quả tương tự như kết quả được hiển thị ở đây, trả về các giá trị RSI cuối cùng trên một số cổ phiếu:

 [{'DAILYRSI:BA':[{}, 1605261060, 62.2048922111768]}, {'DAILYRSI:CAT':[{}, 1605261060, 68.3834400302296]}, {'DAILYRSI:CRM':[{}, 1605261060 , 59.2107333830133]}, {'DAILYRSI:CSCO':[{}, 1605261060, 52.7011052724688]}, {'DAILYRSI:CVX':[{}, 1605261060, 62.9890368832232]}, {'DAILYRSI:DOW':[{} 1605261060, 73.597680480764]}, {'DAILYRSI:GS':[{}, 1605283140, 41.182852552541]}, {'DAILYRSI:IBM':[{}, 1605261060, 65.3742140862697]}, {'DAILYRSI {} JPM':[ , 1605261060, 77.7760292843745]}, {'DAILYRSI:KO':[{}, 1605261060, 26.8638381005608]}, {'DAILYRSI:MMM':[{}, 1605261060, 65.7852833683174]}, {'DAILYRSI:{:}, 1605261060, 38.9991886598036]}, {'DAILYRSI:UNH':[{}, 1605261060, 74.2672428885775]}, {'DAILYRSI:VZ':[{}, 1605261060, 33.177554436462]}, {'DAILYRSI:[WBA'YRSI:{}, 1605261060, 47.3877762365391]}] 

Nếu tôi đã đặt “with_labels =True” , thì kết quả sẽ bao gồm tất cả các nhãn trên mỗi chuỗi thời gian, như được hiển thị ở đây:

 [{'DAILYRSI:BA':[{'SYMBOL':'BA', 'DESC':'RELATIVE_STRENGTH_INDEX', 'INDEX':'DJIA', 'TIMEFRAME':'1_DAY', 'INDICATOR':' RSI ',' COMPANYNAME ':' BOEING '}, 1605261060, 62.2048922111768]}, {' DAILYRSI:CAT ':[{' SYMBOL ':' CAT ',' DESC ':' RELATIVE_STRENGTH_INDEX ',' INDEX ':' DJIA ' , 'TIMEFRAME':'1_DAY', 'INDICATOR':'RSI', 'COMPANYNAME':'CATERPILLAR'}, 1605261060, 68.3834400302296]}, {'DAILYRSI:CRM':[{'SYMBOL':'CRM', ' DESC ':' RELATIVE_STRENGTH_INDEX ',' INDEX ':' DJIA ',' TIMEFRAME ':' 1_DAY ',' INDICATOR ':' RSI ',' COMPANYNAME ':' SALESFORCE '}, 1605261060, 59.2107333830133]}] 

Kết luận

Bài đăng trên blog này đã minh họa một số lệnh của RedisTimeSeries để xây dựng một cách linh hoạt ứng dụng tài chính phụ thuộc vào dữ liệu chuỗi thời gian. Ví dụ, các nhà giao dịch chứng khoán cần có khả năng đưa ra quyết định đặt cược cao trong thời gian thực dựa trên hàng chục biến số. RedisTimeSeries không có tính toán học, có nghĩa là bạn có thể tải dữ liệu mà không cần xác định lược đồ, thêm các trường mới ngay lập tức hoặc thay đổi mô hình dữ liệu của bạn nếu hoàn cảnh kinh doanh của bạn thay đổi. Hiệu suất thời gian thực và trải nghiệm đơn giản dành cho nhà phát triển khiến việc làm việc với dữ liệu chuỗi thời gian trở nên thú vị!

Bạn có thể tìm thấy mã mẫu cho bài đăng blog này trên GitHub tại đây. Và bạn có thể tìm hiểu thêm về RedisTimeSeries tại đây.