亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        Redis 為什么使用SDS

        SDS (Simple Dynamic String,簡單動態(tài)字符串)是 Redis 底層所使用的字符串表示.

        SDS 在 Redis 中的主要作用有以下兩個:

      1. 實現(xiàn)字符串對象(StringObject);
      2. 在 Redis 程序內部用作 char* 類型的替代品;
      3. 用 sds 取代 C 默認的 char* 類型

        因為 char* 類型的功能單一, 抽象層次低, 并且不能高效地支持一些 Redis 常用的操作(比如追加操作和長度計算操作), 所以在 Redis 程序內部, 絕大部分情況下都會使用 sds 而不是 char* 來表示字符串。

        在 C 語言中,字符串可以用一個 結尾的 char 數(shù)組來表示。

        比如說, hello world 在 C 語言中就可以表示為 “hello world” 。

        這種簡單的字符串表示,在大多數(shù)情況下都能滿足要求,但是,它并不能高效地支持長度計算和追加(append)這兩種操作:

        • 每次計算字符串長度(strlen(s))的復雜度為 θ(N)θ(N)θ(N)θ(N) 。
        • 對字符串進行 N 次追加,必定需要對字符串進行 N 次內存重分配(realloc)。

        在 Redis 內部, 字符串的追加和長度計算很常見, 而 APPEND 和 STRLEN 更是這兩種操作,在 Redis 命令中的直接映射, 這兩個簡單的操作不應該成為性能的瓶頸。

        另外, Redis 除了處理 C 字符串之外, 還需要處理單純的字節(jié)數(shù)組, 以及服務器協(xié)議等內容, 所以為了方便起見, Redis 的字符串表示還應該是二進制安全的: 程序不應對字符串里面保存的數(shù)據(jù)做任何假設, 數(shù)據(jù)可以是以 結尾的 C 字符串, 也可以是單純的字節(jié)數(shù)組, 或者其他格式的數(shù)據(jù)。

        考慮到這兩個原因, Redis 使用 sds 類型替換了 C 語言的默認字符串表示: sds 既可高效地實現(xiàn)追加和長度計算, 同時是二進制安全的。

        鄭重聲明:本文內容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年7月11日 09:31
        下一篇 2022年7月11日 09:31

        相關推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息