<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 概述 Rudis 是一個高性能內存數據庫。Rudis 是采用 Rust 語言開發的項目,旨在利用 Rust 語言的優勢來重新實現 Redis 的核心功能,以滿足用戶對高性能、可靠性和安全性的需求,同時保持與 Redis API 的兼容。 ## 特性 - 兼容 字符串、集合、哈希、列表、有序集合數據結構。 - 提供 rdb 與 aof 機制以支持數據備份和恢復。 - 兼容 Redis 的命令和協議規范 ## 快速入門 - 啟動畫面 ``` /\_____/\ / o o \ Rudis 0.0.1 ( == ^ == ) ) ( Bind: 127.0.0.1:6379 ( ) ( ( ) ( ) ) (__(__)___(__)__) [2024-04-30T02:00:55Z INFO rudis_server] Start loading appendfile [=======================================] percent: 100% lines: 6/6 [2024-04-30T02:00:55Z INFO rudis_server] Server initialized [2024-04-30T02:00:55Z INFO rudis_server] Ready to accept connections ``` - 本地調試 ``` // 普通啟動 cargo run // 帶參啟動 cargo run -- --port 8848 // 指定配置 cargo run -- rudis.properties // 構建程序 cargo build cargo build --release cargo build --release --target=x86_64-unknown-linux-musl ``` ## 啟動參數 - port 端口, 默認: 6379 - save RDB 保存策略, 默認:None - password 密碼, 默認:None - databases 數據庫數量, 默認:16 - appendfilename 持久化日志路徑,默認:None - appendonly 開啟持久化,默認:false - dbfilename 數據文件名,默認:dump.rdb - maxclients 會話上限,默認 1000 - hz 定時任務的頻率,默認 10(次/秒) - dir 數據持久化目錄,默認 "./" - bind 綁定的主機地址 ## 項目結構 ### aof aof 包實現了 appendonlyfile 的核心邏輯,該包負責將操作寫入和追加到 AOF 文件中,確保 Redis 數據庫的數據持久性和一致性。 ### command command 包是一個用Rust編寫的模擬Redis服務器的組件,主要負責實現Redis協議的解析、數據庫操作的執行以及相關結果的響應。該包內部包含了針對不同Redis命令的實現,如SELECT、GET、SET等。其核心功能是根據Redis協議規范,解析來自客戶端的命令請求,并在模擬的Redis數據庫上執行相應的操作,再將結果返回給客戶端。通過實現各個Redis命令處理器,實現了對Redis協議的完整支持,并提供了一個簡單而有效的策略來處理不同類型的命令。 ### db db 包是一個基于內存的數據庫管理系統。該模塊提供了基礎的數據結構約定,以及數據庫操作功能,包括對數據的增、刪、改、查等操作。 ### session session 模塊的設計目的是提供一個簡單的會話管理功能,用于跟蹤用戶的操作狀態,例如用戶所選的數據庫索引以及用戶是否已認證等信息。這對于需要進行用戶認證或者跟蹤用戶操作狀態的系統是非常有用的。 ### tools tools 包是一個工具包,其中包含了一些通用的工具函數或工具類,用于輔助實現系統功能或處理特定任務。這些工具可以被其他模塊或組件調用,以提高代碼復用性和降低重復編寫相似功能的工作量。 ## 操作命令 echo 命令 ``` 127.0.0.1:6379> echo helloword helloword ``` ping 命令 ``` 127.0.0.1:6379> ping PONG ``` set 命令 ``` 127.0.0.1:6379> set user bailiang OK ``` set 命令 [過期] ``` 127.0.0.1:6379> set user bailiang px 10000 OK 127.0.0.1:6379> set user bailiang ex 10 OK ``` get 命令 ``` 127.0.0.1:6379> get user bailiang ``` del 命令 ``` 127.0.0.1:6379> del username (integer) 1 127.0.0.1:6379> del username password (integer) 2 ``` exists 命令 ``` 127.0.0.1:6379> exists user (integer) 0 ``` keys 命令 ``` 127.0.0.1:6379> keys * (empty list or set) ``` auth 命令 ``` 127.0.0.1:6379> auth 123456 OK ``` expire 命令 ``` 127.0.0.1:6379> expire user 10000 (integer) 0 ``` select 命令 ``` 127.0.0.1:6379> select 1 OK ``` dbsize 命令 ``` 127.0.0.1:6379> dbsize (integer) 2 ``` flushdb 命令 ``` 127.0.0.1:6379> flushdb OK ``` flushall 命令 ``` 127.0.0.1:6379> flushall OK ``` append 命令 ``` 127.0.0.1:6379> append user bailiang (integer) 10 ``` move 命令 ``` 127.0.0.1:6379> move user 0 OK ``` rename 命令 ``` 127.0.0.1:6379> rename username new_username OK ``` rpush 命令 ``` 127.0.0.1:6379> rpush key value1 value2 OK ``` lpush 命令 ``` 127.0.0.1:6379> lpush key value3 value4 OK ``` llen 命令 ``` 127.0.0.1:6379> llen key (integer) 4 ``` ## 更新計劃 - [x] 持久存儲,存儲每條修改命令到本地文件,啟動時重新加載實現持久化存儲; - [x] 日志體系,完善系統中日志打印,制訂規范,幫助使用者更快速的追溯問題; - [x] 測試用例,針對項目中的每個命令,編寫對應的單元測試,提高項目穩定性; - [ ] 性能優化,使用 Tokio 代替原生的 Thread 通訊方案,以獲得更高的性能; - [ ] 主從同步,增加主從同步配置,實現多實例運行,以保證服務的容錯與穩定; - [ ] 測試用例,根據 commands 清單,編寫軟件的單元測試用例,保證穩健發布; ## 數據結構 - [x] List - [x] Hash - [x] Zset - [x] String - [x] Set ## 命令列表 | Command | Supprt | Appendfile | Test case | Document | | ------- | ------ | ---------- | --------- |--------- | | set | ? | ? | ? | ? | | get | ? | ? | ? | ? | | del | ? | ? | ? | ? | | echo | ? | ? | ? | ? | | flushdb | ? | ? | ? | ? | | flushall| ? | ? | ? | ? | | dbsize | ? | ? | ? | ? | | auth | ? | ? | ? | ? | | select | ? | ? | ? | ? | | llen | ? | ? | ? | ? | | exists | ? | ? | ? | ? | | expire | ? | ? | ? | ? | | rename | ? | ? | ? | ? | | move | ? | ? | ? | ? | | lpush | ? | ? | ? | ? | | rpush | ? | ? | ? | ? | | append | ? | ? | ? | ? | | incr | ? | ? | ? | ? | | decr | ? | ? | ? | ? | | lindex | ? | ? | ? | ? | | lpop | ? | ? | ? | ? | | rpop | ? | ? | ? | ? | | lrange | ? | ? | ? | ? | | ttl | ? | ? | ? | ? | | pttl | ? | ? | ? | ? | | type | ? | ? | ? | ? | | sadd | ? | ? | ? | ? | | smembers| ? | ? | ? | ? | | scard | ? | ? | ? | ? | | hmset | ? | ? | ? | ? | | hget | ? | ? | ? | ? | | hdel | ? | ? | ? | ? | | hexists | ? | ? | ? | ? | | hset | ? | ? | ? | ? | | keys | ? | ? | ? | ? | | zadd | ? | ? | ? | ? | | zscore | ? | ? | ? | ? | | zcard | ? | ? | ? | ? | | zcount | ? | ? | ? | ? | | pexpire | ? | ? | ? | ? | | mset | ? | ? | ? | ? | ## 性能測試 - percent: 100% lines: 100000/100000 time: 00:00:04 - percent: 100% lines: 200000/200000 time: 00:00:09 - percent: 100% lines: 400000/400000 time: 00:00:19
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看