python學習之 Redis資料庫

2021-09-26 04:28:35 字數 4520 閱讀 7474

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...