Redis 基礎和node-redis庫使用

數據類型

  • 字符串 String

  • 列表 List Redis列表只是字符串列表

  • 哈希 Hashes

  • 集合 Set

  • 有序集合 Sorted Set

  • 字符串操作

> set str "test String 1"  
OK
> get str
"test String 1" 
  • 哈希 hashes 類似PHP數組 [“hello”=>123]
> HMSET myhash name "redis hash" age 20   //設置哈希 myhash name ="redis hash" age = 20
OK
> HMGET myhash name  age              //獲取哈希 myhash name age (獲取哈希指定所有key)
"redis hash"
20

> HGETALL myhash   //獲取哈希 myhash 所有鍵和值
"name"
"redis hash"


  • 列表 Redis列表只是字符串列表
> LPUSH lis1 123 223 // 添加 123 223 333 到 list1 列表
(integer) 3

> LLEN list1    //獲取 list1 列表 
(integer) 3

> LRANGE list1 0 1 //獲取 list1 0~3 個元素
"123"
"223"
"333"

> LINDEX list1 1 //獲取list1 第一個字符串
"223"

> RPOP list1  // 刪除並獲取最後一個元素
"333"

> LPOP list1  // 刪除並獲取第一個元素
"123"

  • 集合 Set 唯一字符串的無序集合
> SADD myset "set1" "set2" "set3"  // 添加"set1" "set2" "set3" 到myset
"set1"
> SCARD myset  //獲取集合的成員數
(integer) 3
> SPOP myset // 隨機刪除並返回一個成員

node-redis

// yarn add redus

var redis = require("redis"),
 client = redis.createClient(6379, "localhost");

client.on("error", function(err) {
 console.log("Error " + err);
});

client.on("error", function(err) {
 console.log("Error " + err);
});

client.set("hello", "This is a value");

console.log(new Date().getTime());
client.LINDEX("list1",1, function(err, v) {
 console.log(new Date().getTime());
 console.log("redis get hello err,v", err, v);
});

client.quit();

字符串操作

  • set 設置存儲在給定鍵中的值 OK set(‘key’, ‘value’)
  • get 獲取存儲在給定鍵中的值 value/null get(‘key’)
  • del 刪除存儲在給定鍵中的值(任意類型) 1/0 del(‘key’)
  • incrby 將鍵存儲的值加上整數increment incrby(‘key’, increment)
  • decrby 將鍵存儲的值減去整數increment decrby(‘key’, increment)
  • incrbyfloat 將鍵存儲的值加上浮點數increment incrbyfloat(‘key’, increment)
  • append 將值value追加到給定鍵當前存儲值的末尾 append(‘key’, ‘new-value’)
  • getrange 獲取指定鍵的index範圍內的所有字符組成的子串 getrange(‘key’, ‘start-index’, ‘end-index’)
  • setrange 將指定鍵值從指定偏移量開始的子串設爲指定值 setrange(‘key’, ‘offset’, ‘new-string’)

列表操作

  • rpush 將給定值推入列表的右端
  • lrange 獲取列表在給定範圍上的所有值 array lrange(‘key’, 0, -1) (返回所有值)
  • lindex 獲取列表在給定位置上的單個元素 lindex(‘key’, 1)
  • lpop 從列表左端彈出一個值,並返回被彈出的值 lpop(‘key’)
  • rpop 從列表右端彈出一個值,並返回被彈出的值 rpop(‘key’)
  • ltrim 將列表按指定的index範圍裁減 ltrim(‘key’, ‘start’, ‘end’)

哈希操作

  • hset 在散列裏面關聯起給定的鍵值對 1(新增)/0(更新) hset(‘hash-key’, ‘sub-key’, ‘value’) (不支持數組、字符串)
  • hget 獲取指定散列鍵的值 hget(‘hash-key’, ‘sub-key’)
  • hgetall 獲取散列包含的鍵值對 json hgetall(‘hash-key’)
  • hdel 如果給定鍵存在於散列裏面,則移除這個鍵 hdel(‘hash-key’, ‘sub-key’)
  • hmset 爲散列裏面的一個或多個鍵設置值 OK hmset(‘hash-key’, obj)
  • hmget 從散列裏面獲取一個或多個鍵的值 array hmget(‘hash-key’, array)
  • hlen 返回散列包含的鍵值對數量 hlen(‘hash-key’)
  • hexists 檢查給定鍵是否在散列中 1/0 hexists(‘hash-key’, ‘sub-key’)
  • hkeys 獲取散列包含的所有鍵 array hkeys(‘hash-key’)
  • hvals 獲取散列包含的所有值 array hvals(‘hash-key’)
  • hincrby 將存儲的鍵值以指定增量增加 返回增長後的值 hincrby(‘hash-key’, ‘sub-key’, increment) (注:假如當前value不爲爲字符串,則會無輸出,程序停止在此處)

Set集合

  • sadd 將給定元素添加到集合 插入元素數量
  • smembers 返回集合中包含的所有元素 array(無序) smembers(‘key’)
  • sismenber 檢查給定的元素是否存在於集合中 1/0 sismenber(‘key’, ‘value’)
  • srem 如果給定的元素在集合中,則移除此元素 1/0 srem(‘key’, ‘value’)
  • scad 返回集合包含的元素的數量 sacd(‘key’)
  • spop 隨機地移除集合中的一個元素,並返回此元素 spop(‘key’)
  • smove 集合元素的遷移 smove(‘source-key’dest-key’, ‘item’)
  • sdiff 返回那些存在於第一個集合,但不存在於其他集合的元素(差集) sdiff(‘key1’, ‘key2’[, ‘key3’, …])
  • sdiffstore 將sdiff操作的結果存儲到指定的鍵中 sdiffstore(‘dest-key’, ‘key1’, ‘key2’ [,'key3…])
  • sinter 返回那些同事存在於所有集合中的元素(交集) sinter(‘key1’, ‘key2’[, ‘key3’, …])
  • sinterstore 將sinter操作的結果存儲到指定的鍵中 sinterstore(‘dest-key’, ‘key1’, ‘key2’ [,'key3…])
  • sunion 返回那些至少存在於一個集合中的元素(並集) sunion(‘key1’, ‘key2’[, ‘key3’, …])
  • sunionstore 將sunion操作的結果存儲到指定的鍵中 sunionstore(‘dest-key’, ‘key1’, ‘key2’ [,'key3…])

有序集合

  • zadd 將一個帶有給定分支的成員添加到有序集合中 zadd(‘zset-key’, score, ‘key’) (score爲int)
  • zrange 根據元素在有序排列中的位置,從中取出元素
  • zrangebyscore 獲取有序集合在給定分值範圍內的所有元素
  • zrem 如果給定成員存在於有序集合,則移除
  • zcard 獲取一個有序集合中的成員數量 有序集的元素個數 zcard(‘key’)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章