<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 3.4.1 字符串 String 數據結構是簡單的 key-value 類型,value 不僅可以是 String,也可以是數字。使用 Strings 類型,可以完全實現目前 Memcached 的功能,并且效率更高。還可以享受 Redis 的定時持久化(可以選擇 RDB 模式或者 AOF 模式). string類型是二進制安全的。意思是redis的string可以包含任何數據,比如jpg圖片或者序列化的對象。從內部實現來看其實string可以看作byte數組,最大上限是1G字節, 下面是string類型的定義: ```cpp struct sdshdr { long len; long free; char buf[]; }; ``` len是buf數組的長度。 free是數組中剩余可用字節數,由此可以理解為什么string類型是二進制安全的了,因為它本質上就是個byte數組,當然可以包含任何數據了 buf是個char數組用于存貯實際的字符串內容。 另外string類型可以被部分命令按int處理.比如incr等命令,如果只用string類型,redis就可以被看作加上持久化特性的 memcached。當然redis對string類型的操作比memcached還是多很多的. 具體操作方法如下: ### 命令示例: `set` -- 設置key對應的值為string類型的value。 ```bash > set name itcast ``` `setnx` -- 設置key對應的值為string類型的value。如果key已經存在,值不變,返回0,nx是not exist的意思。 ```bash ?> getname "itcast" > setnx name itcast_new (integer)0 >getname "itcast" ``` `setex` -- 設置key對應的值為string類型的value,并指定此鍵值對應的有效期。 ```bash > setex color 10 red > get color "red" 10秒后... > get color (nil) ``` `setrange` -- 設置指定key的value值的子字符串。 ```bash > set email liudanbing@itcast.cn > get email "liudanbing@itcast.cn" > setrange email 10 gmail.com > get email "liudanbing@itcast.com" ``` 其中的4是指從下標為4(包含4)的字符開始替換 `mset` -- 一次設置多個key的值,成功返回ok表示所有的值都設置了,失敗返回0表示沒有任何值被設置。 ```bash > mset key1 python key2 c++ OK ``` `msetnx` -- 一次設置多個key的值,成功返回ok表示所有的值都設置了,失敗返回0表示沒有任何值被設置。 ```bash > get key1 "python" ``` `get` -- 獲取key對應的string值,如果key不存在返回nil。 ```bash > get name "itcast" ``` `getset` -- 設置key的值,并返回key的舊值。 ```bash > get name "itcast" > getset name itcast_new "itcast" > get name "itcast_new" ``` `getrange` -- 獲取指定key的value值的子字符串。 ```bash > getrange name 0 4 "itcas" ``` `mget` -- 一次獲取多個key的值,如果對應key不存在,則對應返回nil。 ```bash > mget key1 key2 key3 1) "python" 2) "c++" 3) (nil) ``` `incr` -- 對key的值做加加操作 ```bash > set age 20 > incr age (integer) 21 ``` `incrby` -- 同incr類似,加指定值 ,key不存在時候會設置key,并認為原來的value是 0 ```bash > incrby age 5 (integer) 5 ``` `decr` -- 對key的值做的是減減操作,decr一個不存在key,則設置key為-1 `decrby` -- 同decr,減指定值 `append` -- 給指定key的字符串值追加value,返回新字符串值的長度。例如我們向name的值追加一個"redis"字符串: ```bash > append name redis > get name ```
                  <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>

                              哎呀哎呀视频在线观看