python操作三大主流資料庫(11)redis的安裝和簡單使用
阿新 • • 發佈:2018-12-24
命令參考文件:http://www.redis.cn/topics/introduction.html
1.安裝及配置
官網https://redis.io
中文網站:http://www.redis.cn
windows版本下載地址:https://github.com/MSOpenTech/redis/releases
可以看到安裝成了系統服務
2.字串(String)相關操作
set -- 設定值
get -- 獲取值
mset -- 設定多個鍵值對
mget -- 獲取多個鍵值對
append -- 新增字串
del -- 刪除
incr/decr -- 數字加1、減1
設定、獲取值 C:\Users\ajie>redis-cli127.0.0.1:6379> set animal 'cat' OK 127.0.0.1:6379> get animal "cat" 127.0.0.1:6379> set animal 'dog' OK 127.0.0.1:6379> get animal "dog" 127.0.0.1:6379> append animal ' cat' (integer) 7 127.0.0.1:6379> get animal "dog cat" 設定獲取多個值 127.0.0.1:6379> mset user1 'jhon' user2 'amy' OK 127.0.0.1:6379> get user1 "jhon" 127.0.0.1:6379> get user2 "amy" 127.0.0.1:6379> mget user1 user2 animal 1) "jhon" 2) "amy" 3) "dog cat" 127.0.0.1:6379> del user2 (integer) 1 127.0.0.1:6379> del user2 (integer) 0 127.0.0.1:6379> get user2 (nil) incr/decr數字加1、減1 127.0.0.1:6379> set num 10 OK 127.0.0.1:6379> get num"10" 127.0.0.1:6379> set num 9 OK 127.0.0.1:6379> get num "9" 127.0.0.1:6379> decr num (integer) 8 127.0.0.1:6379> get num "8" 127.0.0.1:6379> incr num (integer) 9 127.0.0.1:6379> get num "9" 設定鍵的過期時間 127.0.0.1:6379> set animal 'monkey' ex 5 OK 127.0.0.1:6379> get animal "monkey" 127.0.0.1:6379> get animal (nil)
3.列表(list)相關操作
lpush/rpush -- 從左/右插入資料
lrange -- 獲取指定長度的資料
ltrim -- 擷取一定長度的資料
lpop/rpop -- 移除最左、右的元素並返回
lpushx/rpushx -- key存在的時候才插入資料,不存在時不做任何處理
插入多條資料 127.0.0.1:6379> lpush q1 'jhon' 'cat' 'amy' (integer) 3 127.0.0.1:6379> llen q1 (integer) 3 127.0.0.1:6379> lrange q1 0 -1 1) "amy" 2) "cat" 3) "jhon" 127.0.0.1:6379> lrange q1 0 8888 1) "amy" 2) "cat" 3) "jhon" 127.0.0.1:6379> rpush q1 'bob' (integer) 4 127.0.0.1:6379> lrange q1 0 888 1) "amy" 2) "cat" 3) "jhon" 4) "bob" 127.0.0.1:6379> lpush q1 'okone' (integer) 5 127.0.0.1:6379> lrange q1 0 -1 1) "okone" 2) "amy" 3) "cat" 4) "jhon" 5) "bob" 存在鍵就插入 127.0.0.1:6379> lpushx q1 'zhangsan' (integer) 6 127.0.0.1:6379> lrange q1 0 -1 1) "zhangsan" 2) "okone" 3) "amy" 4) "cat" 5) "jhon" 6) "bob" 不存在,不做任何操作 127.0.0.1:6379> lpushx q2 'AMY' (integer) 0 127.0.0.1:6379> lrange q1 0 -1 1) "zhangsan" 2) "okone" 3) "amy" 4) "cat" 5) "jhon" 6) "bob" 擷取0-2的鍵 127.0.0.1:6379> ltrim q1 0 2 OK 127.0.0.1:6379> lrange q1 0 -1 1) "zhangsan" 2) "okone" 3) "amy"
4.集合(set)的相關操作
sadd/srem -- 新增/刪除元素
sismember -- 判斷是否為set的一個元素
smembers -- 返回該集合的所有成員
sdiff -- 返回一個集合與其他集合的差異
sinter -- 返回幾個集合的交集
sunion -- 返回幾個集合的並集
向集合zoo中新增Cat和Dog元素 127.0.0.1:6379> sadd zoo Cat Dog (integer) 2 127.0.0.1:6379> smembers zoo 1) "Dog" 2) "Cat" 127.0.0.1:6379> srem zoo Cat (integer) 1 127.0.0.1:6379> srem zoo Cat (integer) 0 127.0.0.1:6379> sismember zoo Cat (integer) 0 127.0.0.1:6379> sismember zoo Dog (integer) 1 127.0.0.1:6379> smembers zoo 1) "Dog" 127.0.0.1:6379> sadd zoo Cat (integer) 1 127.0.0.1:6379> smembers zoo 1) "Dog" 2) "Cat" 127.0.0.1:6379> sadd zoo1 Cat Cow (integer) 2 127.0.0.1:6379> smembers zoo1 1) "Cow" 2) "Cat" 127.0.0.1:6379> smembers zoo 1) "Dog" 2) "Cat" 比較集合的差異 127.0.0.1:6379> sdiff zoo zoo1 1) "Dog" 127.0.0.1:6379> sdiff zoo1 zoo 1) "Cow" 返回集合的交集 127.0.0.1:6379> sinter zoo zoo1 1) "Cat" 返回集合的並集 127.0.0.1:6379> sunion zoo zoo1 1) "Cow" 2) "Dog" 3) "Cat"
5.雜湊hash相關操作
hset/hget -- 設定/獲取雜湊值
hmset/hmget --設定/獲取多對雜湊值
hsetnx -- 如果雜湊已經存在,則不設定
hkeys/hvals -- 返回所有keys/values
hlen -- 返回雜湊包含域(field)的數量
hdel -- 刪除雜湊指定的域(field)
hexists -- 判斷是否存在
設定news:1的title和content內容 127.0.0.1:6379> hset news:1 title 'News title' (integer) 1 127.0.0.1:6379> hset news:1 content 'news content' (integer) 1 127.0.0.1:6379> hget news:1 title "News title" 127.0.0.1:6379> hget news:1 content "news content" 127.0.0.1:6379> hmget news:1 title content 1) "News title" 2) "news content" 127.0.0.1:6379> hmset news:2 title 'Title2' content 'Content2' is_valid 1 OK 127.0.0.1:6379> hmget news:2 title content is_valid 1) "Title2" 2) "Content2" 3) "1" 獲取keys和values 127.0.0.1:6379> hkeys news:1 1) "title" 2) "content" 127.0.0.1:6379> hkeys news:2 1) "title" 2) "content" 3) "is_valid" 127.0.0.1:6379> hvals news:1 1) "News title" 2) "news content" 127.0.0.1:6379> hvals news:2 1) "Title2" 2) "Content2" 3) "1" 127.0.0.1:6379> hlen news:1 (integer) 2 127.0.0.1:6379> hlen news:2 (integer) 3 127.0.0.1:6379> hdel news:2 is_valid (integer) 1 127.0.0.1:6379> hdel news:2 is_valid (integer) 0 127.0.0.1:6379> hlen news:2 (integer) 2 判斷值是否存在 127.0.0.1:6379> hexists news:2 is_valid (integer) 0 127.0.0.1:6379> hset news:2 is_valid 1 (integer) 1 127.0.0.1:6379> hexists news:2 is_valid (integer) 1