1. 程式人生 > >Redis 資料庫初級篇

Redis 資料庫初級篇

1、Nosql(not only sql)

  • 非關係型資料庫,不支援sql語法
  • 每種Nosql資料庫都有自己的api和語法格式
  • 常見的種類有:Mongodb, Redis, Hbase hadoop, Cassandra hadoo
  • Nosql與sql資料庫的區別:
    • 適用場景不同:sql資料庫關係特別複雜的資料查詢場景,而nosql相反。
    • 事務特性的支援:sql對事務的支援非常的完善,而noslq基本不支援事務。
    • 兩者在不斷的取長補短,呈現融合趨勢

2、Redis資料庫

  • 支援資料的持久化,可以將記憶體中的資料儲存到磁碟中,重啟的時候可以再次進行載入使用。
  • 不僅支援key-value型資料,還支援string,hash,list,set,zset資料操作。
  • 支援資料備份(master-slave)
  • 讀寫效能極高

3、Redis命令

1、string:

設定
set key value   # 基本鍵值對
setex key seconds vakue  # 建立字串並指明有效的時間
mset key1 value1 key2 value2... # 多個鍵值對
append key value  # 追加內容到字串

獲取
get key    # 獲取value值
mget key1 key2...  # 獲取多個value值

檢視鍵
keys *   # 檢視所有的鍵
keys a*   # 檢視以a開頭的鍵
keys *a   # 檢視以a結尾的鍵
keys *a*  # 檢視包含a的鍵
exists key1  # 判斷鍵是否存在
type key   # 檢視鍵的型別

刪除鍵
del key1 key2 # 刪除鍵
expire key second    # 刪除鍵,並設定有效期
ttl key 檢視鍵的有效期

2、hash

設定
hset key field value   # 給鍵設定一個屬性
hmset key field1 vlaue1 field2 value2..  # 設定多個屬性

獲取
hget key field   # 獲取域的一個屬性
hmget key field   # 獲取域的多個屬性
hkeys key    # 獲取指定域的所有屬性
hvals key   # 獲取指定域的所有屬性值

刪除鍵
hdel key field1 field2

3、list

設定
lpush key value1 value2  # 從左邊插入
rpush key value1 value2  # 從右邊插入
linsert key before oldvalue newvalue  # 在指定元素前插入
linsert key after oldvalue newvalue   # 在指定元素後面插入
lset key index value  # 設定指定位置的元素值

獲取
lrange key start stop   # 獲取在該範圍內從start到stop的值

刪除鍵
lrem key count value
# 當count>0時,從左往右刪除count個value值
# 當count<0時, 從右往左刪除-count個value值
# count=0時,刪除所有的value

4、set

設定
sadd key member1 member2  # 新增元素

獲取
smembers key   # 獲取域中的所有元素

刪除鍵
srem key value  # 刪除域內的指定元素

5、zset

設定
zadd key score1 mumber1 score2 mumber2 # 新增元素

獲取
zrange key start stop  # 返回指定範圍內的member
zrangebysocre key min max   # 返回權重值在min和max中的元素
zscore key value 獲取域中value的權重值

刪除鍵
zrem key member1 member2..  # 刪除域內的指定元素
zremrangebyscore key min max  # 刪除域權重介於min和max 之間的元素