NoSQL之redis用法

什麼是NoSQL?sql

  • 泛指非關係型的數據庫
  • 不支持SQL語法
  • 存儲結構跟傳統關係型數據庫中的那種關係表徹底不一樣,nosql中存儲的數據都是Key-Value(即鍵值對關係)形式
  • NoSQL的世界中沒有一種通用的語言,每種nosql數據庫都有本身的api和語法,以及擅長的業務場景
  • NoSQL中的產品種類至關多,Mongodb,Redis,Hbase hadoop,Cassandra hadoop等。

NoSQL和SQL數據庫的比較:數據庫

  • 適用場景不一樣:sql數據庫適合用於關係特別複雜的數據查詢場景,nosql反之
  • 「事務」特性的支持:sql對事務的支持很是完善,而nosql基本不支持事務
  • 二者在不斷地取長補短,呈現融合趨勢

Redis:api

  是一款性能極高的nosql,讀寫速度很是快,很是適合用來作緩存。它擁有豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操做。原子 – Redis的全部操做都是原子性的,同時Redis還支持對幾個操做全並後的原子性執行。豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過時等等特性。緩存

 

數據操做(Ubuntu環境下):app

  Redis以key-value形式存儲數據,key爲字符串 Value: 字符串,hash表,list集合,set集合,zset集合 五種類型。nosql

  字符串類型:oop

    • 基本鍵值對: set key value
    • 鍵值對,有效期: setex key second value
    • 設置多個鍵值對: mset key1 value1 key2 value2 ..
    • 追加值: append key value

獲取值:性能

1.獲取基本值: get keyspa

2.獲取多個值: mget key1 key2 ..索引

查看鍵:

1.查看全部的鍵: keys *

2.查看以a開頭的鍵: keys a*

3.看鍵是否存在: exists key

4.查看鍵的類型: type key1

刪除鍵值對:

1.刪除鍵: del key1 key2 ..

2.設置鍵有效期,刪除鍵:expire key seconds

3.查看鍵的有效期: ttl key

hash類型 增長數據

1.增長域的key和值: hset key field value

2.設置域的多個屬性: hmset key filed1 value1 field2 value2…

獲取數據:

1.獲取域的屬性(字段): hget key field

2.獲取域的多個屬性: hmget key filed1 field2..

3.獲取域的全部屬性(字段): hkeys key

刪除數據:

1.刪除多個屬性值(字段): hdel key field1 field2…

list類型: 插入數據:

1.左側插入數據: lpush key value1 value2 …

2.右側插入數據: rpush key value1 value2 …

3.指定key,舊元素位置前插入元素: 格式:linsert key before oldvalue newvalue

4.指定key,舊元素位置後插入元素: 格式:linsert key after oldvalue newvalue

獲取數據:

1.獲取從編號start位置到編號stop位置的元素: 格式:lrange key start stop (注意點,最後一個元素能夠使用-1表示)

2.設置指定索引位置的元素值: lset key index value

刪除數據:

1.將key域列表中,前count次,值爲value的元素刪除:

格式:lrem key count value

count:須要刪除的個數       

value: 須要刪除的值    

count>0:從頭開始數, count<0從尾到頭,count=0查找全部元素

set類型:

特色:無序(順序)集合, 大小關係有序,不能存儲重複元素 1 6 3 9 2

添加元素:

1.向key域(集合)中添加多個數據, sadd key member1 member2...

獲取元素:

2.獲取key域集合的全部元素: smembers key

刪除元素:

1.刪除指定key元素的值: srem key value

Zset類型:

  特色: 有序集合, score爲權重值 序:天然順序

增長數據

  1.向key域集合中添加多個score1,member1數據

  格式: zadd key score1 member1 score2 memever2...

獲取數據:

  1.返回指定範圍內的member元素: 格式:zrange key start stop start:爲開始索引,包含 stop:爲結尾索引,包含, -1表示最後一個元素

  2.獲取min和max權值之間(包含)的成員值: 格式:zrangebyscore key min max

  3.獲取key域集合中member的score的權重值: 格式:zscore key member

刪除元素:

1.刪除域集合中指定的元素值:

   格式:zrem key member1 member2...

2.刪除集合中權重在指定範圍內(min,max)的元素:

  格式:zremrangebyscore key min max

相關文章
相關標籤/搜索