1. 程式人生 > >二:Redis數據類型

二:Redis數據類型

sco con 命令 resource flushall field 存儲 實例 god

一.?nosql(非關系性數據庫):

mongoDB
hbase
redis
nulch  
hive
pig
mahout  
zookeeper

二:redis 數據類型

1.存儲string:

常用命令:
    設置/取值:
        set key value
        get key
        getset key value 
        del key  
    數值增減:
        incr key
        decr key
    擴展命令:
        incrby key increment
        decrby key decrement
        append key value

2.存儲hash:鍵值對

常用命令:
    賦值:
        hset key field value
        hmset key field value [field2 value2 ...]
    取值:
        hget key field
        hmget key field field ...
        hgetall key
    刪除:
        hdel key field [field...]
        del key
    增加數字:
        hincrby key field increment 
自學命令:
    hexists key field  
    hlen key 
    hkeys key 
    hvals key 

3.存儲list:有序可重復,按插入順序排序的字符串鏈表

常用命令:
    兩端添加:
        lpush key values[value1 value2 ...] 
        rpush key values[value1 value2 ...] 
    查看列表:
        lrange key start end 
    兩端彈出:
        lpop key 
        rpop key 
    獲取列表中元素的個數
        llen key
擴展命令:
    lpushx key value 
    rpushx key value 
    lrem key count value 
    lset key index value 
    linsert key before|after pivot value 
    rpoplpush resource destination
        rpoplpush mylist1 mylist2
        rpoplpush mylist1 mylist1

4.存儲set:無序不重復

常用命令:
    添加/刪除元素:
        sadd key values[value1,value2...] 
        srem key members[member1,member2...] 
    獲得集合中元素:
        smembers key 
        sismember key member 
    集合中差集運算:A-B
        sdiff key1 key2...: 
    集合中交集運算:AnB
        sinter key1 key2...:
    集合中並集運算:AuB
        sunion key1 key2...:
擴展命令:
    scard key 
    srandmember key 
    sdiffstore destination key1 key2... 
    sinterstore destination key1 key2...
    sunionstore destination key2 key2...

5.存儲sortedset:有序不重復

常用命令:
    添加元素:
        zadd key score memeber score2 member2... 
    獲得元素:
        zscore key member 
        zcard key 
    刪除元素:
        zrem key member[member...] 
        zremrangebyrank key start stop 
        zremrangebyscore key min max 
    範圍查詢:
        zrange key start end [withscores] 
            zrange myzset 0 -1 withscores
        zrevrange key start stop [withscores]       
擴展命令:
    zrangebyscore key min max [withscores] [limit offset count] 
    zincrby key increment member
    zcount key min max
    zrank key member
    zrevrank key member

6.keys值的通用操作:

keys pattern : *表示任意一個或多個; ?表示任意一個字符
del key1 key2... 
exists key 
rename key newkey 
expire key 
ttl key 
type key

三:redis特性:

1.多數據庫:

一個redis實例最多可提供16個數據庫,下標從0到15,默認連接是第0號數據庫,也可以通過select選擇連接哪個數據庫。

select 1
move key 2 

2.服務器命令:

ping 
echo 
select 
quit 
dbsize :當前數據庫中key的數目
info :服務器的信息和統計
flushdb :刪除當前選擇數據庫中的所有key
flushall :刪除所有數據庫中的所有key

3.消息訂閱與發布:

subscribe channel :訂閱頻道
    subscribe mychat
psubscribe channel* :批量訂閱頻道
    psubscribe s* :訂閱以‘s’開頭的頻道
publish channel content :在指定的頻道中發布消息
    publish mychat 'today is a newday'

4.redis事務:

multi :開啟事務
discard :事務回滾
exec :提交事務
    multi
    incr num1
    incr num2
    incr num3
    discard/exec

四:redis持久化:數據從內存中同步到硬盤中

redis支持兩種方式持久化:一種RDB;一種AOF.

1.RDB(默認支持,無需配置)

在指定時間間隔內將內存中的數據集快照寫入磁盤

快照參數設置:
    save 900 1  15分鐘 至少1個key發生變化,即dump內存快照
    save 300 10  5分鐘 至少10個key發生變化,即dump內存快照
    save 60 10000 1分鐘 至少10000個key發生變化,即dump內存快照 

2.AOF

以日誌形式記錄服務器所處理的每一個寫操作,在redis服務器啟動之初會讀取該文件來重新構建數據庫。

配置信息:
    always  每次有數據修改發生時寫入aof文件
    everysec  每秒鐘同步一次
    no  從不同步

二:Redis數據類型