Redis安裝和客戶端cli常見操作


安裝Redis

$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
$ tar xzf redis-4.0.6.tar.gz
$ cd redis-4.0.6
$ make


#編譯完成后,redis的二進制程序在src目錄中

#啟動redis服務端
$ src/redis-server


#啟動redis客戶端
$ src/redis-cli

Redis客戶端常見操作

Redis是key-value數據庫,支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

  • 當value是string類型,命令包括set get setnx incr del 等。
> set server:name "fido"  // 設置鍵值
OK
> get server:name  // 獲取鍵值
"fido"
> setnx connections 10   // set if not exists
OK
> incr connections   // 原子性增加values值
(integer) 11
> incr connections
(integer) 12
> del connections  // 刪除key
(integer) 1
> incr connections
(integer) 1

 

  • 當value是list類型,命令包括rpush lpush llen lrange lpop rpop del 等。
> rpush friends "Alice"   // 在末尾追加
(integer) 1
> rpush friends "Bob"
(integer) 2
> lpush friends "Sam"    // 插入到開頭
(integer) 3

> lrange friends 0 -1     // 返回列表的子集,類似切片操作
1) "Sam"
2) "Alice"
3) "Bob"
> lrange friends 0 1
1) "Sam"
2) "Alice"
> lrange friends 1 2
1) "Alice"
2) "Bob"

> llen friends   // 返回列表長度
(integer) 3
> lpop friends   // 刪除並返回列表第一個元素
"Sam"
> rpop friends   // 刪除並返回列表最后一個元素
"Bob"
> lrange friends 0 -1
1) "Alice"

> del friends    // 刪除key
(integer) 1     // 1表示成功,0表示失敗

  

  • 當value是set類型,命令包括sadd srem sismember smembers sunion del等。
> sadd superpowers "flight"     // 添加元素
(integer) 1
> sadd superpowers "x-ray vision"
(integer) 1
> sadd superpowers "reflexes"
(integer) 1
> srem superpowers "reflexes"   // 刪除元素
1

> sismember superpowers "flight"   // 測試元素是否在集合中
(integer) 1
> sismember superpowers "reflexes"
(integer) 0
> smembers superpowers    // 返回集合中所有元素
1) "x-ray vision"
2) "flight"

> sadd birdpowers "pecking"
(integer) 1
> sadd birdpowers "flight"
(integer) 1
> sunion superpowers birdpowers    // 合並多個set,返回合並后的元素列表
1) "x-ray vision"
2) "flight"
3) "pecking"

> del superpowers   // 刪除key
(integer) 1

  

  • 當value是zset類型,命令包括 zadd zrange del等,注意給value一個編號用於排序。
> zadd hacker 1940 "Alan Kay"     // 給value指定一個編號,比如以年份1940作為編號
(integer) 1
> zadd hacker 1906 "Grace Hopper"
(integer) 1
> zadd hacker 1953 "Richard Stallman"
(integer) 1
> zadd hacker 1965 "Yukihiro Matsumoto"
(integer) 1
> zadd hacker 1916 "Claude Shannon"
(integer) 1
> zadd hacker 1969 "Linux Torvalds"
(integer) 1
> zadd hacker 1957 "Sophie Wilson"
(integer) 1
> zadd hacker 1912 "Alan Turing"
(integer) 1

> zrange hacker 2 4    // 切片返回有序集合中元素
1) "Claude Shannon"
2) "Alan Kay"
3) "Richard Stallman"

> del hacker    // 刪除key
(integer) 1

  

  • 當value是hash類型,hash類型可以理解為字典,需要給value指定一個field用於映射,命令包括hset hmset hget hgetall hdel hincrby del 等。
> hset user:1000 name "John Smith"   // 給value指定一個field,比如name
(integer) 1
> hset user:1000 email "john.smith@example.com"
(integer) 1
> hset user:1000 password "s3cret"
(integer) 1
> hgetall user:1000   // 獲得hash表中所有成員,包括field和value
1) "name"
2) "John Smith"
3) "email"
4) "john.smith@example.com"
5) "password"
6) "s3cret"

> hmset user:1001 name "Mary Jones" password "hidden" email 
"mjones@example.com"   // 設置多個field和value
OK
> hget user:1001 name   // 根據field獲取value
"Mary Jones"
 
> hset user:1000 visits 10    // field可以映射到數字值
(integer) 1
> hincrby user:1000 visits 1    // 原子性增加value的值,增加1
(integer) 11
> hincrby user:1000 visits 10    // 增加10
(integer) 21
> hdel user:1000 visits      // 刪除field及其value
(integer) 1
> hincrby user:1000 visits 1
(integer) 1

> del user:1000     // 刪除key
(integer) 1

  

  • 設置和查看key的生命周期,key過期會被自動刪除,命令包括expire ttl 等。
> set resource:lock "Redis Demo"
OK
> expire resource:lock 120   // 設置生命周期為120s
(integer) 1
> ttl resource:lock   // 查看當前生命周期還剩多少時間
(integer) 109
> ttl resource:lock   // 120s后查看,返回-2表示已過期或不存在
(integer) -2

> set resource:lock "Redis Demo 2"
OK
> ttl resource:lock    // 返回-1表示永不過期
(integer) -1

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM