日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
我們一起了解Redis的愛恨情仇

Redis是一個key-value 存儲系統(tǒng),是跨平臺的非關(guān)系型數(shù)據(jù)庫。

創(chuàng)新互聯(lián)專注于福建企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。福建網(wǎng)站建設(shè)公司,為福建等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

Redis 是一個開源的使用 ANSI C 語言編寫、遵守 BSD 協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存、分布式、可選持久性的鍵值對(Key-Value)存儲數(shù)據(jù)庫,并提供多種語言的 API。

Redis 通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因為值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等類型。

redis的安裝介質(zhì)在:https://github.com/tporadowski/redis/releases

下載后運行得到一個運行路徑。

修改redis.windows-service.conf文件,一個是端口,一個是密碼認證

#bind 127.0.0.1             #注釋掉這一句,使redis可以外部訪問
port 6379 #默認端口,可以改成別的端口
protected-mode yes #修改為yes,開啟保護模式,默認是yes
#daemonize no #這一句是注釋的,windows版本不支持,默認是no
requirepass 123456 #密碼
appendonly yes

進行指定目錄下,運行redis

# 啟動redis失敗 Could not create server TCP listening socket 127.0.0.1:6379: bind: 操作成功

操作辦法:

redis命令,設(shè)置key,value值

上面提到的字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等類型,具體操作也不復(fù)雜

C:\Program Files\Redis>redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set key1 v1
OK
127.0.0.1:6379> get key1
"v1"
127.0.0.1:6379> get key
(nil)
127.0.0.1:6379> set name "wbq"
OK
127.0.0.1:6379> get name
"wbq"
127.0.0.1:6379> set name "whp"
OK
127.0.0.1:6379> get name
"whp"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> hmset name field1 "wbq" field2 "whp"
OK
127.0.0.1:6379> hget name field1
"wbq"
127.0.0.1:6379> hget name field2
"whp"
127.0.0.1:6379> lpush alist redis
(integer) 1
127.0.0.1:6379> lpush alist db2
(integer) 2
127.0.0.1:6379> lpush alist mysql
(integer) 3
127.0.0.1:6379> lrange alist 0 2
1) "mysql"
2) "db2"
3) "redis"
127.0.0.1:6379> lrange alist 0 1
1) "mysql"
2) "db2"
127.0.0.1:6379> sadd aset set1
(integer) 1
127.0.0.1:6379> sadd aset set2
(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
127.0.0.1:6379> sadd aset set3
(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
127.0.0.1:6379> sadd aset set3 [member ...]

又報錯了,(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.

大意就是說無法持久化寫入磁盤,進行配置

127.0.0.1:6379> config set stop-writes-on-bgsave-error no
OK
127.0.0.1:6379> sadd aset set2
(integer) 1
127.0.0.1:6379> sadd aset set3
(integer) 1
127.0.0.1:6379> sadd aset set4
(integer) 1
127.0.0.1:6379> sadd aset set2
(integer) 0
127.0.0.1:6379> smembers aset
1) "set4"
2) "set3"
3) "set1"
4) "set2"
127.0.0.1:6379>

查看服務(wù)端錯誤日志,大意是說沒有寫入權(quán)限

[34752] 27 Apr 11:50:16.328 # fork operation complete
[34752] 27 Apr 11:50:16.340 # Background saving error
[34752] 27 Apr 11:50:22.046 * 1 changes in 900 seconds. Saving...
[34752] 27 Apr 11:50:22.115 * Background saving started by pid 7944
[7944] 27 Apr 11:50:22.251 # Failed opening the RDB file dump.rdb (in server root dir C:\Program Files\Redis) for saving: 數(shù)據(jù)無效。
[7944] 27 Apr 11:50:22.253 # rdbSave failed in qfork: Permission denied
[34752] 27 Apr 11:50:22.325 # fork operation complete
[34752] 27 Apr 11:50:22.338 # Background saving error
[34752] 27 Apr 11:50:28.046 * 1 changes in 900 seconds. Saving...
[34752] 27 Apr 11:50:28.112 * Background saving started by pid 20004
[20004] 27 Apr 11:50:28.229 # Failed opening the RDB file dump.rdb (in server root dir C:\Program Files\Redis) for saving: 數(shù)據(jù)無效。
[20004] 27 Apr 11:50:28.231 # rdbSave failed in qfork: Permission denied

對文件夾的讀寫權(quán)限進行變更后,一切正常

[34752] 27 Apr 11:50:28.326 # fork operation complete
[34752] 27 Apr 11:50:28.343 # Background saving error
[34752] 27 Apr 11:50:34.060 * 1 changes in 900 seconds. Saving...
[34752] 27 Apr 11:50:34.126 * Background saving started by pid 32840
[34752] 27 Apr 11:50:34.339 # fork operation complete
[34752] 27 Apr 11:50:34.383 * Background saving terminated with success

繼續(xù)進行各類型鍵值操作。

127.0.0.1:6379> zadd asortedset 0 redis
(integer) 1
127.0.0.1:6379> zadd asortedset 1 db2
(integer) 1
127.0.0.1:6379> zadd asortedset 0 sqlserver
(integer) 1
127.0.0.1:6379> zrangebyscore asortedset 0 5
1) "redis"
2) "sqlserver"
3) "db2"
127.0.0.1:6379>

Redis支持多個數(shù)據(jù)庫,并且每個數(shù)據(jù)庫的數(shù)據(jù)是隔離的不能共享,并且基于單機才有,如果是集群就沒有數(shù)據(jù)庫的概念。

Redis是一個字典結(jié)構(gòu)的存儲服務(wù)器,而實際上一個Redis實例提供了多個用來存儲數(shù)據(jù)的字典,客戶端可以指定將數(shù)據(jù)存儲在哪個字典中。這與我們熟知的在一個關(guān)系數(shù)據(jù)庫實例中可以創(chuàng)建多個數(shù)據(jù)庫類似,所以可以將其中的每個字典都理解成一個獨立的數(shù)據(jù)庫。

每個數(shù)據(jù)庫對外都是一個從0開始的遞增數(shù)字命名,Redis默認支持16個數(shù)據(jù)庫(可以通過配置文件支持更多,無上限),可以通過配置databases來修改這一數(shù)字??蛻舳伺cRedis建立連接后會自動選擇0號數(shù)據(jù)庫,不過可以隨時使用SELECT命令更換數(shù)據(jù)庫,如要選擇1號數(shù)據(jù)庫:

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get key1
(nil)
127.0.0.1:6379[1]> zrangebyscore asortedset 0 5
(empty list or set)
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> zrangebyscore asortedset 0 5
1) "redis"
2) "sqlserver"
3) "db2"
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> zrangebyscore asortedset 0 5
(empty list or set)
127.0.0.1:6379[2]>

其實我真正的目的是為了實現(xiàn)一個最近24小時數(shù)據(jù)的隊列,確保數(shù)據(jù)是持續(xù)滾動的

構(gòu)建一個list列表鍵值,通過rpush實現(xiàn)24條記錄寫入,查看數(shù)據(jù),持續(xù)lpop和rpush可實現(xiàn)一個隊列,現(xiàn)在欠缺的是一個元數(shù)據(jù)了。

127.0.0.1:6379> del  userdaydata:username:user1:data
(integer) 1
127.0.0.1:6379> rpush userdaydata:username:user1:data 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
(integer) 24
127.0.0.1:6379> lrange userdaydata:username:user1:data 0 23
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
8) "7"
9) "8"
10) "9"
11) "10"
12) "11"
13) "12"
14) "13"
15) "14"
16) "15"
17) "16"
18) "17"
19) "18"
20) "19"
21) "20"
22) "21"
23) "22"
24) "23"
127.0.0.1:6379> lpop userdaydata:username:user1:data
"0"
127.0.0.1:6379> lrange userdaydata:username:user1:data 0 23
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
10) "10"
11) "11"
12) "12"
13) "13"
14) "14"
15) "15"
16) "16"
17) "17"
18) "18"
19) "19"
20) "20"
21) "21"
22) "22"
23) "23"
127.0.0.1:6379> rpush userdaydata:username:user1:data 0
(integer) 24
127.0.0.1:6379> lrange userdaydata:username:user1:data 0 23
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
10) "10"
11) "11"
12) "12"
13) "13"
14) "14"
15) "15"
16) "16"
17) "17"
18) "18"
19) "19"
20) "20"
21) "21"
22) "22"
23) "23"
24) "0"
127.0.0.1:6379> lpop userdaydata:username:user1:data
"1"
127.0.0.1:6379> lrange userdaydata:username:user1:data 0 23
1) "2"
2) "3"
3) "4"
4) "5"
5) "6"
6) "7"
7) "8"
8) "9"
9) "10"
10) "11"
11) "12"
12) "13"
13) "14"
14) "15"
15) "16"
16) "17"
17) "18"
18) "19"
19) "20"
20) "21"
21) "22"
22) "23"
23) "0"
127.0.0.1:6379> rpush userdaydata:username:user1:data 1
(integer) 24
127.0.0.1:6379> lrange userdaydata:username:user1:data 0 23
1) "2"
2) "3"
3) "4"
4) "5"
5) "6"
6) "7"
7) "8"
8) "9"
9) "10"
10) "11"
11) "12"
12) "13"
13) "14"
14) "15"
15) "16"
16) "17"
17) "18"
18) "19"
19) "20"
20) "21"
21) "22"
22) "23"
23) "0"
24) "1"
127.0.0.1:6379>

后文會將如何通過python進行redis操作。

參考1:https://blog.csdn.net/qq_45047809/article/details/112529734

參考2:https://www.runoob.com/redis/redis-tutorial.html


分享題目:我們一起了解Redis的愛恨情仇
文章地址:http://www.dlmjj.cn/article/dpdcesh.html