Redis
string類型
- 字符串類型是 Redis 中最為基礎的數據存儲類型。
- 它在 Redis 中是二進制安全的,這便意味着該類型可以接受任何格式的數據。
- 如JPEG圖像數據或Json對象描述信息等。
- 在Redis中字符串類型的Value最多可以容納的數據長度是512M。
set:
#設置鍵值: set key value #設置鍵為name值為xiaoming的數據 set name xiaoming
setex:
#設置鍵值及過期時間,以秒為單位 setex key seconds value #設置鍵為aa值為aa過期時間為3秒的數據 setex aa 3 aa
mset:
#設置多個鍵值 mset key1 value1 key2 value2 ... #設置鍵為a1值為python、鍵為a2值為java、鍵為a3值為c mset a1 python a2 java a3 c++
append:
#追加值 append key value #向鍵為a1中追加值abc append a1 abc
get:
#獲取:根據鍵獲取值,如果不存在此鍵則返回nil get key #獲取鍵name的值 get name
mget:
#獲取多個鍵獲取多個值 mget key1 key2 ... #獲取鍵a1、a2、a3的值 mget a1 a2 a3
鍵命令
key:
#查找鍵,參數支持正則表達式 keys pattern #查看所有鍵 keys * #查看名稱中包含a的鍵 keys a*
exists
#判斷鍵是否存在,如果存在返回1,不存在返回0 exists key1 #判斷鍵a1是否存在 exists a1
type:
#查看鍵對應的value的類型 type key #查看鍵a1的值類型為redis⽀持的五種類型中的⼀種 type a1
delete:
#刪除鍵及對應的值 del key1 key2... #刪除鍵a1、a2 del a2 a3
expire:
#設置過期時間,以秒為單位 #如果沒有指定過期時間則⼀直存在,直到使⽤DEL移除 expire key seconds #設置鍵a1的過期時間為3秒 expire a1 3
ttl:
#查看有效時間,以秒為單位 ttl key #查看鍵a1的有效時間 ttl a1
hash類型
- ash⽤於存儲對象,對象的結構為屬性、值
- 值的類型為string
hset:
#設置單個屬性 hset key field value #設置鍵 user的屬性name為xiaoming hset user name xiaoming
hmset:
#設置多個屬性 hmset key field1 value1 field2 value2 ... #設置鍵u2的屬性name為itcast、屬性age為11 hmset u2 name itcast age 11
hkeys:
#獲取指定的鍵的所有的屬性 hkeys key #獲取鍵a1的所有屬性 hkeys a1
hget:
#獲取多個屬性的值 hmget key field1 field2 ... #獲取鍵u2屬性name的值 hget u2 name
hmget:
#獲取多個屬性的值 hmget key field1 field2 ... #獲取鍵u2屬性name、age的值 hmget u2 name age
hvals:
#獲取所有屬性的值 hvals key #獲取鍵u2所有屬性的值 hvals u2
hdel
#刪除整個hash鍵及值,使用del命令 #刪除屬性,屬性對應的值會被一起刪除 hdel key field1 field2 ... #刪除鍵u2的屬性age hdel u2 age
list類型
- 列表的元素類型為string
- 按照插入順序排序
lpush
#在左側插入數據 lpush key value1 value2 ... #從鍵為a1的列表左側加⼊數據a 、 b 、c lpush a1 a b c
rpush
#在右側插入數據 rpush key value1 value2 ... #從鍵為a1的列表右側加⼊數據0、1 rpush a1 0 1
linsert
#在指定元素的前或后插入新元素 linsert key before或after 現有元素 新元素 #在鍵為a1的列表中元素b前加⼊3 linsert a1 before b 3
lrange
#start、stop為元素的下標索引 #索引從左側開始,第⼀個元素為0 #索引可以是負數,表示從尾部開始計數,如-1表示最后⼀個元素 #返回列表里指定范圍內的元素 lrange key start stop #獲取鍵為a1的列表所有元素 lrange a1 0 -1
lset
#設置指定索引位置的元素值 lset key index value #修改鍵為a1的列表中下標為1的元素值為z lset a 1 z
lrem
#列表中前count次出現的值為value的元素移除 #count > 0: 從頭往尾移除 #count < 0: 從尾往頭移除 #count = 0: 移除所有 #刪除指定元素 lrem key count value #向列表a2中加⼊元素a、b、a、b、a、b lpush a2 a b a b a b #從a2列表右側開始刪除2個b lrem a2 -2 b
ltrim
#截取保留的元素 ltrim key start stop # 只保留前三個元素(0-2) ltrim name 0 2
set類型
sadd:
#添加元素 sadd key member1 member2 ... #向鍵a3的集合中添加元素zhangsan、lisi、wangwu sadd a3 zhangsan sili wangwu
smembers
#返回所有的元素 smembers key #獲取鍵a3的集合中所有元素 smembers a3
srem
#刪除指定元素 srem key #刪除鍵a3的集合中元素wangwu srem a3 wangwu
zset類型:
- sorted set,有序集合
- 元素為string類型
- 元素具有唯一性,不重復
- 每一個元素都會關聯一個double類型的score,表示權重,通過權重將元素從小到大排序
- 注:zset類型沒有修改操作
zadd
#添加 zadd key score1 member1 score2 member2 ... #向鍵a4的集合中添加元素lisi、wangwu、zhaoliu、zhangsan,權重分別為4、5、6、3 zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan
zrange
#返回指定范圍內的元素(-1表示最后一個元素) #start、stop為元素的下標索引 #索引從左側開始,第一個元素為0 #索引可以是負數,表示從尾部開始計數,如-1表示最后一個元素 zrange key start stop #獲取鍵a4的集合中所有元素 zrange a4 0 -1
zrangebyscore
#返回score值在min和max之間的成員 zrangebyscore key min max #獲取鍵a4的集合中權限值在5和6之間的成員 zrangebyscore a4 5 6
zscore
#返回成員member的score值 zscore key member #獲取鍵a4的集合中元素zhangsan的權重 zscore a4 zhangsan
zrem
#刪除指定元素 zrem key member1 member2 ... #刪除集合a4中元素zhangsan zrem a4 zhangsan
zremrangebyscore
#刪除集合a4中元素zhangsan zrem a4 zhangsan #刪除權重在指定范圍的元素 zremrangebyscore key min max #刪除集合a4中權限在5、6之間的元素 zremrangebyscore a4 5 6
StrictRedis對象⽅法
引⼊模塊
#引入模塊 #這個模塊中提供了StrictRedis對象,⽤於連接redis服務器,並按照不同類型提供 了不同⽅法,進⾏交互操作 from redis import StrictRedis
通過init創建對象,指定參數host、port與指定的服務器和端⼝連接,host默認為localhost,port默認為6379,db默認為0
sr = StrictRedis(host='localhost',port=6379,db=0)
簡寫:
sr = StrictRedis()
string-增加
try: #創建StrictRedis對象,與redis服務器建⽴連接 sr=StrictRedis() #添加鍵name,值為itheima result=sr.set('name','xiaoming') #輸出響應結果,如果添加成功則返回True,否則返回False print(result) except Exception as e: print(e)
string-獲取
try: #創建StrictRedis對象,與redis服務器建⽴連接 sr=StrictRedis() #獲取鍵name的值 result = sr.get('name') #輸出鍵的值,如果鍵不存在則返回None print(result) except Exception as e: print(e)
string-修改
try: #創建StrictRedis對象,與redis服務器建⽴連接 sr=StrictRedis() #設置鍵name的值,如果鍵已經存在則進⾏修改,如果鍵不存在則進⾏添加 result = sr.set('name','xiaoming') #輸出響應結果,如果操作成功則返回True,否則返回False print(result) except Exception as e: print(e)
string-刪除
try: #創建StrictRedis對象,與redis服務器建⽴連接 sr=StrictRedis() #設置鍵name的值,如果鍵已經存在則進⾏修改,如果鍵不存在則進⾏添加 result = sr.delete('name') #輸出響應結果,如果刪除成功則返回受影響的鍵數,否則則返回0 print(result) except Exception as e: print(e)
獲取鍵
try: #創建StrictRedis對象,與redis服務器建⽴連接 sr=StrictRedis() #獲取所有的鍵 result=sr.keys() #輸出響應結果,所有的鍵構成⼀個列表,如果沒有鍵則返回空列表 print(result) except Exception as e: print(e)