redis常用作伺服器與資料庫之間的乙個快取
客戶端 伺服器 redis 資料庫
客戶端向伺服器發起登入請求,伺服器將使用者名稱和密碼拿去與redis中的快取匹配,
*若存在匹配值,且驗證通過。則允許登入。
*若存在匹配值,且驗證不通過,則不允許登入
*若redis中找不到匹配值,則向資料庫發起請求,驗證完成後,再將資訊寫入redis中。
redis官方沒有為windows開發環境,但從github上可以找到windows版本的redis。
3、修改redis.windows.conf檔案:
1、455行新增:maxheap 1024000000
2、387行新增:requirepass 密碼(密碼處替換為你自己的密碼)
***此處注意巨坑:在所有修改過的配置項前不能留有空格,否則無法啟動
4、啟用cmd進入安裝路徑,執行redis-server.exe redis.windows.conf
5、新啟動乙個cmd,進入對應目錄執行:redis-cli.exe
ping命令測試伺服器連線情況,第一次會顯示連線有誤
輸入auth '密碼'進行密碼校驗
6、視覺化操作工具:redis-desktop
資料操作:1、redis是key-value的資料,所以每個資料都是乙個鍵值對
2、鍵的型別是字串
3、值的型別有五種:字串string
雜湊hash
列表list
集合set
有序集合zset
4、資料操作的全部命令
概述:是redis最基本的型別,最大能儲存512mb的資料,string型別是二進位制安全的,即可以儲存任何資料,比如數字、、序列化物件等
1、設定
a、設定鍵值
語法:set key value
示例:set a "hello redis"(加引號表示引號內是一串資料)
b、設定鍵值過期時間,以秒為單位
語法:setex key second value
示例:setex c 10 good
c、設定多個鍵值
語法:mset key value [key value...]
示例:mset d good e nice
2、獲取
a、根據鍵獲取值,如果鍵不存在則返回null(none 0 nil)
語法:get key
示例:get e
b、根據多個鍵獲取多個值
語法:mget key [key....]
示例:mget a b d
3、運算
要求:值是字串型別的數字
a、將key對應的值加1
incr key
b、將key對應的值減1
decr key
c、將key對應的值加整數
incrby key intnum
d、將key對應的值加整數
decrby key intnum
4、其他
a、追加值
b、獲取值長度
strlen key
1、查詢鍵,引數支援正則
語法:keys pattern
示例:keys *
2、判斷鍵是否存在,存在返回1,否則0
語法:exists key
示例:exists a
3、檢視鍵對應的value型別
type key
4、刪除鍵及對應的值
del key [key ....]
5、設定過期時間
expire key seconds
6、檢視有效時間
ttl key
概述:用於儲存物件
1、設定
a、設定單個值
hset key field value
b、設定多個值
語法:hmset key field value[field value ....]
示例:hmset p2 name lc age 22
2、獲取
a、獲取乙個屬性的值
語法:hget key field
示例:hget p1 name
b、獲取多個值
hmget key filed [filed...]
c、獲取所有屬性和值
hgetall key
d、獲取所有的屬性
hkeys key
e、獲取所有值
hvals key
f、返回包含屬性的個數
hlen key
3、其他
a、判斷屬性是否存在,存在返回1,否則0
hexists key field
b、刪除屬性及值
hdel key field [filed....]
c、返回值的字串長度
hstrlen key field(有錯誤)
概述:列表的元素型別為string,按照插入順序排序,在列表的頭部或尾部新增資料
1、設定:
a、在頭部插入
lpush key value [values]
b、在尾部插入
rpush key value [values]
c、在乙個元素的前或後插入新元素
linsert key before|after pivot value
d、設定指定索引的元素值
lset key index value
注意:index下標從0開始,索引值也可以是負數,表示偏移量從list的尾部開始,如-1表示最後乙個元素
2、獲取:
a、移除並返回key對應的list的第乙個元素
lpop key
b、移除並返回key對應的list的最後乙個元素
rpop key
c、返回儲存在key的列表中的指定範圍的元素
lrange key start end
注意:start end都是從0開始,偏移量可以是負數
3、其它
a、裁剪列表,改為原集合的乙個子集
ltrim key start end
注意:start end都是從0開始,偏移量可以是負數
b、返回儲存在key裡的list的長度
llen key
c、返回列表中索引對應的值
lindex key index
概述:無序集合,元素型別為string型別,元素具有唯一性,不重複
1、設定
a、新增元素
sadd key member [member...]
2、獲取
a、返回key集合中所有元素
smembers key
b、返回集合元素個數
scard key
3、其它
a、求多個集合的交集
sinter key [key...]
b、求多個集合的差集
sdiff key [key..]
c、求多個集合的合集
sunion key [key]
d、判斷元素是否在集合中,存在返回1,反之返回0
sismember key member
概述:
a、有序集合,元素型別為string,元素具有唯一性,不能重複
b、每個元素都會關聯乙個double型別的score(表示權重)
c、通過權重的大小排序,元素的score可以相同
1、設定
a、新增
zadd key score memeber [score memeber ..]
2、獲取
a、返回指定範圍的元素
zrange key start end
b、返回元素個數
zcard key
c、返回有序集合key中,score在min和max之間的元素的個數
zcount key min max
d、返回有序集合key中,成員member的score值
zscore key member
#安裝redis庫 pip install redis
import redis
#連線r = redis.strictredis(host="localhost",port=6379,password="root")
#方法一:根據資料型別不同呼叫相應的方法
#寫# r.set("p1","good")
## #讀取
# print(r.get("p1"))
#方法二:pipline
#快取多條命令,然後依次執行,減少伺服器-客戶端之間的tcp資料報
pipe = r.pipeline()
pipe.set("p2","nice")
pipe.set("p3","handsome")
pipe.set("p4","cool")
pipe.execute()
python學習之隨機數
這些天需要用到從一堆數中隨機提取幾個數,於是重新研究了下random模組。下面介紹下random中常見的函式。前提 需要匯入random模組 import random 1 random.random random.random 用於生成乙個0到1的隨機符小數 0 n 1.0 random.rand...
redis學習之安裝redis
1.安裝虛擬機器vmware 2.在虛擬機上安裝linux 指令 yum install gcc c 4.使用filezilla連線linux,將磁碟中的redis壓縮包傳輸到linux的root目錄下 5.解壓redis壓縮包 指令 tar zxvf 檔名 6.進入到壓縮檔案目錄,執行make 如...
redis學習之redis事務
redis事務的本質是一組命令的集合。事務支援一次執行多個命令,乙個事務中所有命令都會被序列化。在事務執行過程中,會按照順序序列化執行佇列中的命令,其他客戶端提交的命令請求不會插入到事務執行命令序列中。總結來說 redis事務就是一次性 順序性 排他性的執行乙個佇列中的一系列命令。批量操作在傳送ex...