Redis數據庫命令操做

啓動Redis

# redis-cli -v    //查看版本
# redis-server &   //啓動服務 &=後臺運行
# 建議配置文件啓動 redis-server /usr/local/redis/redis.conf 
# redis-cli shutdown   中止服務
# redis-server --port 6380  //指定端口 默認爲6379

基本操做

# redis-cli
    >keys *     //查看全部鍵
    >dbsize     //鍵總數
    >exists 鍵值   //查看鍵是否存在(1存在  0不存在)
    >set hello word  設置鍵hello   值爲word
    >del hello  刪除
    >get hello   獲取
    >mset a 1 b 2 c 3  批量設置
    >mget a b c 批量獲取
    >set hello zkc xx   修改已經存在的hello 爲zkc

    >incr 是數值的鍵   每次加1

    >append hello zkc   值 追加zkc
    >strlen hello   查看字符串長度
    >getset hello redis   設置並返回原值
    >getrange hello 0 b    字符位置以0開始計數  將hello的鍵值第一個字符改成b
    >getrange hello 0 1    獲取hello鍵值的  第1和2位字符

哈希 (hset key field value)

>hset user:1 name tom    設置
    >hget user:1 name tom    獲取
    >hdel user:1 name        刪除
    >hlen user:1             計算field個數
    >hmset user:1 name tome age 12  批量設置
    >hexists user:1 name    判斷是否存在
    >hkeys user:1  獲取全部field
    >hvals user:1  獲取全部value
    >hgetall user:1 獲取全部field+value

    >hmset hashkey f1 v1 f2 v2
    >object encoding hashkey   
    查看內部編碼 field個數小  ziplist  
    當value大於64字節或者field個數超過512 內部編碼會變成hashtable

列表

添加
    > rpush listkey c b a    從右往左插入元素

    > lpush list1 c b a       從左往右插入元素
    > lrange listkey 0 -1    從左往右獲取列表全部元素 

    > linsert listkey before b java   b前面插入java
    > linsert listkey after b java   b後面插入java
    查
    > lrange listkey 0 -1    從左往右獲取列表全部元素 (0爲第一位 -1爲最後一位)
    > lrange listkey 0 2    從左往右獲取列表 第1位到第3位元素

    > lindex listkey -1    獲取列表下最後一位的元素(指定索引下標的元素)
    > llen listkey       獲取列表長度
    刪除
    > lpop listkey    刪除左側
    > rpop listkey    刪除右側
    > lrem listkey 4 a   從左往右刪除4個a
    > ltrim listkey 1 3  只保留第2位到第4位的元素
    修改
    > lset listkey 2 pyhton    第三位改爲python

    阻塞
    > brpop list:test 3   (timeout=3  客戶端3秒後返回) 
    > brpop list:test 0   (會一直阻塞)
    > blpop  (用法同樣方向不一樣)

集合

集合內操做
    1添加元素
    > sadd key a b c
    返回3  添加了3個元素
    2刪除
    > srem key a b ca
    3計算元素個數
    > scard key
    4判斷元素在集合內否  在返回1  不在返回0
    >sismember key c
    5隨機從集合中返回指定個數元素
    > srandmember key 2
    6從集合中隨機彈出刪除一個元素
    > spop key
    > smembers key  查看元素已經沒有剛剛彈出的
    7獲取全部元素
    > smembers key

    集合間操做
    求多個集合的交集
    sinter key key

    求多個集合的並集
    synion key key

    求多個集合的差集
    sdiff key key

    將交集,並集,差集的結果保存
    sinterstore destination key key
    sunionstore destination key key
    sdiffstore destination key key

    內部編碼
    1內部元素個數較少爲整數時,內部編碼爲 intset
    > object encoding key    查看內部編碼
    2當元素超過512個 內部編碼變爲 hashtable
    > object encoding key

    給用戶添加標籤 sadd user:1:tags tag1 tag2  
    刪除           srem user:1:tags tag1 tag2
    給標籤添加用戶 sadd tag1:users user:1 user:3
    刪除           srem tag1:users user:1

    有序集合
    添加成員
    zadd key 100 tom 添加用戶tom 和他的分數100

    計算成員個數
    zcard key

    計算成員排名 (從0開始計算)
    zrank key  低到高
    zrevrank key 高到低 
    刪除成員
    zrem key tom
    增長成員分數
    zincrby key 9 tom  

    指定排名範圍的成員
    zrange key 0 2 withscores   低到高 1-3名 加withscores會返回分數
    zrevrange key 0 2 withscores  高到低

    指定分數範圍的成員 (200 +inf   無限大
    zrangebyscore key 200 220 withscores   200-220分的從低到高
    zrevrangebyscore   高到低

    指定分數範圍的個數
    zcount key 200 220
    刪除指定分數的成員
    zremrangeebyscore key 200 220

    zremrangeebyscore key (250 +inf  刪除250分以上的人

事務

> multi   開始
    > ...N條操做
    > exec    結束 (能夠用discard代替exec)
相關文章
相關標籤/搜索