1. 程式人生 > >redis五種型別及常用命令

redis五種型別及常用命令

redis提供五種資料型別:
    string 字串型別
        是二進位制安全的,可以儲存任何資料,包括圖片和序列號物件
        set get setnx ttl setrange mset msetnx getset
        getrange  mget  incr  incrby  decr  decrby
    hash    雜湊型別
        hmset hmget  同時設定一個hash表的多個field
        hset  hget   設定一個hash表的一個field
        hincrby  hexists hlen hdel hkeys hvals 
        hgetall

list    列表型別
    lpush 在對應的list的頭部新增字串元素
        lpush和lrange是先寫入的後讀出
        rpush和lrange是先寫入的先讀出
            0代表從頭部開始第一個元素
            -1代表從尾部開始第一個元素
            0  -1 代表list連結串列中所有的資料
            127.0.0.1:6379[2]> lpush list world
            (integer) 1
            127.0.0.1:6379[2]> lpush list hello
            (integer) 2
            127.0.0.1:6379[2]> lrange list 0 -1
            1) "hello"
            2) "world"
    rpush 在key對應的list的尾部新增字串
    linsert 在key對應的list的特定位置前後新增字串
    lset  修改list中指定下標的元素值
    lrem  從key中對應list中刪除n個“指定值"的元素
    ltrim 保留指定的key的值範圍內的資料
    lpop  從list的頭部刪除元素,並返回刪除元素
    rpop  從list的尾部刪除元素,並返回刪除元素
    rpoplpush 將第一個list1尾部的元素新增到第二個list的頭部
        #rpoplpush list1 list2
        也就是rpop出list1的尾部元素,lpush到list2的頭部
    lindex  獲取佇列中指定下標元素的值
    llen  獲取佇列的長度

set     集合型別
    sadd 新增一個或多個元素到集合中
        127.0.0.1:6379[2]> sadd set1 2 3 4
    smembers  獲取集合裡面所有的元素
        127.0.0.1:6379[2]> smembers set1
    srem 從集合中刪除指定的一個或多個元素
        127.0.0.1:6379[2]> srem set1 2 3
    spop 隨機從集合中刪除一個元素並返回
        127.0.0.1:6379[2]> spop set1
    srandmember 隨機返回集合中一個元素,但不刪除
        127.0.0.1:6379[2]> srandmember set1
    scard 獲取集合裡面的元素個數
        127.0.0.1:6379[2]> scard set1
    sismember 確定一個值是否是集合中的元素
        127.0.0.1:6379[2]> sismember set1 5
    sdiff 返回集合1和集合2的差集,以集合1為主
        也就是集合1減去兩個集合的共同值
    sdiffstore diff set1 set2
        也就是將命令sdiff set1 set2的值存入diff中
    sinter 獲取兩個集合的交集
    sinterstore ss set1 set2
        將命令sinter set1 set2的結果儲存到ss中
    sunion 獲取兩個集合的並集
    sunionstore store set1 set2 
        將命令sunion set1 set2 的結果儲存到store中
    smove 將指定的值從源集合移動到目標集合

zset    有序集合型別
    zadd 向一個指定的有序集合內新增元素
    127.0.0.1:6379[2]> zadd zset1 1 one 2 two
        向zset1中新增兩個值
    127.0.0.1:6379[2]> zrange zset1 0 -1
        獲取zset1中的所有值
    127.0.0.1:6379[2]> zrange zset1 0 -1 withscores
        獲取zset1中的值,並按分數從小到大排序
    127.0.0.1:6379[2]> zrevrange zset1 0 -1 withscores
        反向排序,獲取zset1中的值,並按分數從大到小排序
    127.0.0.1:6379[2]> zrangebyscore zset1 2 3 withscores
        獲取zset1中的分數在2和3之內的值
    127.0.0.1:6379[2]> zrem zset1 three
        獲取zset1中的three的資料
    zincrby 給有序集合中指定值得成員的分數加上增量值
        zincrby zset1 2 xiaoxiao 給xiaoxiao的分數加2
    zrank 返回有序集合中指定值得下標。值按score從小到大排序
        zrank zset1 xiaoxiao
    zrevrank 反向排序,返回有序集合中指定值下標,值按score從大到小排序
        zrevrank zset1 xiaoxiao
    zcount 返回有序集合中,score值在起始分數與截止分數之間的個數
        zcount zset1 60 100  返回分數在60到100的有幾個
    zcard 返回有序集合元素的個數
        zcard zset1 返回zset1中有幾個元素
    zremrangebyrank 刪除有序集合中,下標在指定區間的元素
        zremrangebyrank zset1 0 2  刪除下標在0和2之間的元素
    zremrangebyscore 刪除有序集合中,分數在指定區間的元素
        zremrangebyscore zset1 0 60 withscores 刪除分數在60以下的元素
    zinterstore 取集合1和集合2的交集,並將結果儲存在新集合中,在計算交集前,
        需要指定計算交集的集合的個數。交集中,值得分數是多個集合中分數的總和
        zinterstore zset1 3 zset1 zset2
    zunionstore  與zinterstore類似,只不過取兩個集合的交集,分數取多個集合中分數總和

儲存值:
127.0.0.1:7002> set name lamp   設定name的值為lamp
127.0.0.1:7001> get name        獲取鍵name的值
127.0.0.1:7001> setnx name alex 設定未存在的鍵name的值
(integer) 0     返回0表示name鍵已經存在,不會重新賦值
127.0.0.1:7001> setex age 10 60 設定age的值為60,有效期為10秒
127.0.0.1:7000> ttl age         檢視age的剩餘的生存時間
    返回-2表示此key不存在
    返回-1表示此key沒有設定剩餘生存時間
    否則返回的就是以秒為單位的剩餘生存時間
127.0.0.1:7000> set mail 
[email protected]
設定mail的值 OK 127.0.0.1:7000> setrange mail 9 @163.com 將mail的值從第9各開始替換為@163.com (integer) 17 返回mail共有多少個字元 127.0.0.1:7000> get mail 獲取mail的值 "[email protected]" 127.0.0.1:7000> mset key1 lamp1 key2 lamp2 一次設定多個鍵值對 返回ok表示所有的值都已經設定,返回0表示沒有任何值被設定 127.0.0.1:7001> getset name lamp 設定name的值並返回舊值 127.0.0.1:7001> getrange name 0 2 返回name的下標從0到2的子字串 127.0.0.1:7001> mget key1 key2 mget一次獲取多個值,對於key不存在返回nil 127.0.0.1:7001> set key1 10 OK 127.0.0.1:7001> incr key1 對key1值做加加,也就是遞增的操作,並返回新值 127.0.0.1:7001> incrby key1 5 對key1值做每次遞增5的操作,並返回新值 decr與incr相反,做遞減的操作 decrby與incrby相反,做遞減操作 127.0.0.1:7000> get mail "123456" 127.0.0.1:7000> append mail @qq.com 給指定的key的字串增加value,返回新字串的長度 (integer) 13 127.0.0.1:7000> get mail "
[email protected]
" 127.0.0.1:7000> STRLEN mail 返回指定key的value值的長度 127.0.0.1:7000> del mail 刪除一個已經建立的key
redis中常用的命令: 鍵值相關命令: key h*lo 查詢以h開頭,lo結尾的鍵 exists name 查詢name鍵是否存在,1表示存在,0表示不存在 del name 刪除name鍵 expire age 20 設定age鍵的過期時間為20秒 ttl 以秒為單位,返回給定key的剩餘生存時間 select 3 選擇資料庫,3 指的是資料庫3,預設有0-15,共16個數據庫 move age 7 移動一個鍵到指定的資料庫,將age鍵從當前庫移動到資料庫7 randomkey 隨機返回一個當前庫的鍵 rename 對鍵值進行重新命名 rename name NAME tpye 檢視一個鍵的型別(string hash list set zset,) ping 測試伺服器是否可以連線 echo 在命令列輸出字串,字串需要用引號擴起來 quit 退出資料庫
save 儲存所有資料,save命令回阻塞所有埠的請求, 生產環境一般使用BGSAVE代替,save是儲存資料的最後手段 dbsize 返回當前庫中鍵的數量 info 獲取伺服器的詳細資訊 config get 獲取redis伺服器配置檔案中的引數,也支援萬用字元 config get * 獲取伺服器配置檔案的所有引數 config get dbfilename 獲取伺服器的資料庫檔名 flushdb 刪除當前資料庫中所有的資料 flushall 刪除資料庫中的所有資料 新增資料庫密碼:redis.conf --> requirepass password-->pkill redis--> redis-server ../redis.conf --> redis-cli -h IP地址 -P port -ppassword (使用叢集用-c) -h ip地址在使用本地資料庫的情況下可以省略 -p password 最好也不要使用,會在歷史命令中留下密碼資訊, 可先進入,redis-cli -p 6379, 再使用auth password,輸入密碼進入資料庫 redis主從複製的特點: 1、master可以擁有多個slave 2、多個slave可以連線同一個master外,也可以連線到其他slave上 3、主從複製不會阻塞master,在同步資料時,master可以繼續處理client請求 4、提高系統的伸縮性 redis主從複製過程: 1、slave與master建立連線,傳送sync同步命令 2、master會啟動一個後臺程序,將資料庫快照儲存到檔案中, 同時master主程序會開始收集新的寫命令並快取 3、後臺完成儲存後,就將此檔案傳送給slave 4、slave將此檔案儲存到硬碟上 redis對事務的處理 redis只能保證一個client發起的事務中的命令可以連續的執行, 中間不會插入其他的client命令。 multi命令發出後進入一個事務,該命令後的命令不會立即執行, 而是先儲存在一個佇列中,當命令對應結束命令時, redis才會對隊列當中儲存的命令進行依次順序執行或取消執行。 exec是執行事務,discard是回滾,取消事務。 釋出訂閱訊息: 相同的客戶端啟動多個,在一個客戶端釋出訊息,其他客戶端都可以收到 127.0.0.1:6379> SUBSCRIBE cctv1 此客戶端處於監聽cctv1頻道的訊息 127.0.0.1:6380> publish cctv1 hello 這個客戶端釋出訊息到cctv1頻道 127.0.0.1:6379> psubscribe * 監聽所有頻道 127.0.0.1:6379> psubscribe cctv.* 監聽所有以cctv開頭的頻道 127.0.0.1:6379> unsubscribe cctv1 取消訂閱 127.0.0.1:6379> unsubscribe cctv1.* 127.0.0.1:6379> PUBSUB channels 檢視當前伺服器訂閱的所有通道 127.0.0.1:6379> PUBSUB channels.* 檢視當前伺服器訂閱的以chnnels開頭的通道 127.0.0.1:6379> pubsub numsub cctv1,cctv2,cctv3 查詢訂閱通道訂閱者數量,支援多通道一起查詢

檢視原文:http://www.chenqmc.com/?p=376

相關推薦

redis型別常用命令

redis提供五種資料型別: string 字串型別 是二進位制安全的,可以儲存任何資料,包括圖片和序列號物件 set get setnx ttl setrange mset msetnx getset getrange

redis中資料型別常用命令

  expire key 10(設定key的有效期為10秒) String: set key value;(設定key值為value值) setnx key value(設定如果不存在) setex key 秒數 value get key(得到key的物件)

Redis 5資料結構常用命令

Redis支援五種資料結構的key-value,分別是string字串,linklist連結串列,set無序集合,order set有序集合,還有hash雜湊資料型別等 Redis字串String型別的操作: 1.   set key value [ex 秒數] / [px

Redis型別儲存

1.String操作的命令: set(key, value):給資料庫中名稱為key的string賦予值value get(key):返回資料庫中名稱為key的string的value ge

redis在linux安裝常用命令

1.上傳壓縮包到/soft/2.解壓縮到/usr/redis/3.進到/usr/redis/redis-3.0.0下發現有Makefile,所以,直接make編譯即可4.執行make install PREFIX=/usr/redis/redisAnzhuang/ 進行安裝,

Java中使用redis的完整例項常用命令

private void StringOperate() { System.out.println("======================String_1=========================="); // 清空資料 S

redis資料型別常用命令適用場景

一.redis的5種資料型別: 1.基礎理解: string 字串(可以為整形、浮點型和字串,統稱為元素) list 列表(實現佇列,元素不唯一,先入先出原則) set 集合(各不相同的元素) hash hash雜湊值(hash的key必須是唯一的) sort set 有序集合 2.所有命令:http://

redis資料型別必須掌握的指令

一、redis五種資料型別 1.string(字串) string是redis最基本的型別,你可以理解成與Memcached一模一樣的型別,一個key對應一個value。 string型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的物件 。 s

Redis資料型別簡單操作命令

目前正在學習Redis,總覺得好記性不如爛筆頭,所以還是把課上學到得簡單得東西做一個筆記,這樣子便於以後學習。 首先安裝Redis。 由於官網上沒有Windows系統的Redis軟體,但是微軟一直在做這個Windows的Redis。下載地址:https://github.com/MSOp

REDIS基本資料型別命令操作(1)

REDIS 五種基本資料型別命令操作 1. 字串(string) set key value #儲存一個鍵值對 get key #通過key來去對應的值 mset key1 v1 k2 v2 #一次儲存多

REDIS基本資料型別命令操作(2)

REDIS 五種基本資料型別命令操作 1.set集合 sadd key v1 [v2 v3] # 新增值到set集合中 smembers key # 迭代遍歷set集合 sismember key value # 判斷是否存在一個

Redis資料型別底層實現

Redis物件型別簡介 Redis是一種key/value型資料庫,其中,每個key和value都是使用物件表示的。比如,我們執行以下程式碼: redis>SET message "hello redis" 其中的key是message,是一個包含了字串"mess

淺析Redis資料型別簡單使用

php-高階程式設計QQ群:490910618 一.Redis是什麼         Redis是高效能Key-Value資料庫,屬於非關係型資料庫的一種。 二.Redis支援的資料型別    &n

Redis資料型別常用的操作命令——LIST操作

可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ LPUSH key value [value …] 將一個或多個值 value 插入到列表 key 的表頭 如果有多個 value 值,那麼各個 value 值按從左到右的順序依次插入到表頭: 比如說,對空

Redis資料型別常用的操作命令——String操作

可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ set k v: 當set k1 v1後再次set k1 v2,則會覆蓋上一次的值; get key: 獲取key的value; del key: 刪除當前key; APPEND key value:

Redis資料型別常用的操作命令——key操作

可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ key: select:用於選擇redis的DB,redis的DB有0-16個數據庫。 keys /key::遍歷該資料庫中的所有的key,key代表具體的key。 EXISTS key:代表是否存在

Redis資料型別常用的操作命令——資料型別

Redis總共有5大資料型別,分列如下: String(字串): string是redis最基本的型別,你可以理解成與Memcached一模一樣的型別,一個key對應一個value。 string型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的

Redis資料型別常用的操作命令——hash操作

可以通過該網站檢視更多redis命令及資訊:http://redisdoc.com/ HSET key field value 將雜湊表 key 中的域 field 的值設為 value 。 如果 key 不存在,一個新的雜湊表被建立並進行 HSET 操作。 如果域 field 已經存在於雜

redis配置文件全解常用命令

redisredis配置文件全解及常用命令1.基本配置daemonize no 是否以後臺進程啟動databases 16 創建database的數量(默認選中的是database 0)save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發,即900秒之後至少1個關鍵字發生變化。save 3

開啟運維之路之第 6 篇——Redis資料型別string、list、hash、set、zset

1、上一篇介紹Redis的基礎,提供2種啟動方式,這裡彙總一下: ①寫 shell 指令碼,執行 shell 指令碼。詳見上一篇文章結尾。 ②[[email protected] ~]# cd /usr/local/redis/ [[email protected