1、redis安裝和啟動
redis-cli -h ip
見文檔
2讹语、redis函數(shù)學習
1)字符串
set key value
get key
getrange key start end --->字符串提取秉扑,字符串從0開始杏瞻,包含start和end
getset key value --->設置key的值癌压,返回的是舊值蛹批,新值會設置成功
setex key seconds value ---->設置key的值撰洗,過期時間為seconds篮愉,如果存在,替換之差导,時間以s為單位
setnx key value --->該key不存在的時候才設置试躏,存在不設置
setrange key offset value --->將該key對應的值從offset開始替換為value
strlen key --->得到該key對應的值的長度
mset:
mset key1 value1 key2 value2 key3 value3 --->同時設置多個鍵值對
msetnx --->同時設置多個鍵值對,當鍵不存在的時候才設置
psetex key time value ->設置鍵值對设褐,時間以ms為單位
incr key --->
為key對應的值增加1
如果key不存在颠蕴,那么先創(chuàng)建這個key,值為0助析,然后設置為1
如果key對應的是字符串犀被,那么報錯
incrby key number --->在指定的key對應的值加incre_amount
decr key
減一
decrby key number --->減去指定的數(shù)量
append key value --->在指定的key對應的值后面追加value
mget --->一次獲取多個鍵的值
2)隊列
lpush key value1 value2 --->依次將value1和value2從左邊插入到隊列key中
lrange key start stop --->依次的顯示隊列key中從start開始到stop結(jié)束的所有元素
start 0 stop -1代表最后一個
lpushx key value --->當隊列key存在的時候才往隊列頭部插入數(shù)據(jù),如果隊列不存在外冀,插入失敗
lpop key --->彈出隊列key中最左邊的元素
rpush key value1 value2 --->將value從右邊插入到隊列key中
rpushx key value --->將value從右邊插入到隊列key中寡键,但是前提是隊列key必須存在
rpop key --->將隊列key中最右邊的元素彈出
rpoplpush src dst --->將隊列src中最右邊的元素插入到隊列dst中的最左邊
ltrim key start stop --->將隊列中start-stop區(qū)間之外的所有元素全部干掉
閉區(qū)間
lset key index value --->將隊列key中的第index個元素設置為value
下標從0開始
llen key --->得到隊列key中元素的個數(shù)
lindex key index --->獲取隊列key中第index個元素
lrem key count value
count > 0 從最左邊開始,干掉count個和value相等的元素
count < 0 從最右邊開始雪隧,干掉-count個和value相等的元素
count = 0 干掉隊列key中所有和value相等的元素
linsert key before|after value newvalue --->在隊列key中的value的前面或者后面插入newvalue
3)集合
無序性西轩、唯一性
sadd key value1 value2 value3 --->往集合key中插入多個值
scard key --->得到集合中元素的個數(shù)
smembers key --->查看集合key中所有的元素
sdiff key1 key2 key3--->保留key1中key2和key3沒有的元素(求差) ,key1不變,但結(jié)果返回給你
sdiffstore dst key1 key2 key3 --->將這個(sdiff key1 key2 key3)的結(jié)果保留到集合dst中
sinter key1 key2 --->取出key1和key2的交集
sinterstore dst key1 key2 --->將sinter key1 key2的結(jié)果保存到集合dst中
sismember key value --->判斷value在不在集合key中脑沿,在的話返回1藕畔,不在的話返回0
smove src dst value ---> 將集合src中的value元素移動到集合dst中
spop key--->從集合key中隨機彈出一個元素
srandmember key count
count > 0 count < 集合元素個數(shù): 返回你一個數(shù)組,而且數(shù)組元素唯一
count > 集合元素個數(shù):返回你該集合中所有的元素
count < 0:返回給你-count個元素庄拇,但是不保證唯一
srem key value1 value2 --->移除集合key中的value1和value2元素
sunion key1 key2 --->得到集合key1和集合key2的并集
sunionstore dst key1 key2 --->將集合key1和集合key2的并集保存到dst中
4)哈希
hset key field value --->給對應的key設置屬性和屬性值
hsetnx key field value --->該key中不存在的field才設置為value
hget key field --->獲取指定key的field屬性
hdel key field1 field2 --->刪除對應key中指定的屬性
hexists key field --->對應的key中是否存在這個屬性注服,存在返回1,不存在返回0
hgetall key --->獲取這個key對應的所有的屬性和值
hincrby key field number --->給這個key對應的屬性值加減number
hincrbyfloat key field number --->給這個key對應的屬性值加減number,number為float值
hkeys key --->對應的key中所有的屬性名
hvals key --->對應的key中所有的值
hlen key --->對應的key有多少個屬性
hmset key field1 value1 field2 value2 ... --->同時為key設置多個屬性和屬性值
hmget key field1 field2 ... --->同時獲取key的多個屬性的值
5)有序集合
zadd key score member --->將分值為score的成員member加入到有序集合key中
zcard key --->得到集合key中元素的個數(shù)
zcount key start stop --->得到集合key中分值在start到stop之間的元素的個數(shù)
閉區(qū)間 [start stop] 這個寫分值
zincrby key number member --->給集合key中指定的member元素的分值加上number
zrange key start stop [withscores]
顯示集合中的元素 start和stop是下標 0 -1
顯示成員的時候可以顯示分值
zrangebyscore key min max
按照區(qū)間去查找對應的元素 min和max 是分值
【注】前面的只能寫數(shù)字措近,肯定是大于等于祠汇,后面的可以寫開區(qū)間,不寫默認就是閉區(qū)間
0 (100 0<= <100
0 100 0<= <=100
默認升序排列好
zrank key member
從低到高排列熄诡,下標從0開始
查找member在有序集合key中的排名 顯示的是下標
zrem key member1 member2 --->移除有序集合中指定的元素
zrevrange key start stop withscores --->查詢從start到stop之間所有的元素,但是是從大到小排列
zrevrank key member --->用法和zrank一樣,但是是從大大小排列的順序
【注】得到的是下標
zrevrangebyscore key max min
根據(jù)成績從高到低排序诗力,得到指定分值區(qū)間的成員
ZREVRANGEBYSCORE salary +inf -inf # 逆序排列所有成員
zscore key member --->返回指定成員的分數(shù)
鍵命令
0-15:redis默認有16個數(shù)據(jù)庫凰浮,默認是在第0個數(shù)據(jù)庫中操作
select num:切換數(shù)據(jù)庫
keys *:所有鍵
del key:刪除鍵
EXPIRE key seconds:給指定的key添加過期時間,單位是s
ttl key:以秒為單位苇本,返回這個鍵剩余的時間秒數(shù)
exists key:判斷一個鍵是否存在
flushdb: 刪除當前數(shù)據(jù)庫中所有的鍵
flushall:刪除所有數(shù)據(jù)庫中的所有鍵
rename key newkey #修改key的名稱(如果新的key的名字存在 則會把存在的key的值 覆蓋掉)
randomkey #隨機返回一個 key
move key db 將指定鍵移動到指定庫
臨時設置密碼
獲取密碼
config get requirepass
設置密碼
config set requirepass 123456
當有密碼的時候認證
auth 密碼
取消密碼
config set requirepass ''
永久設置密碼
到配置文件中設置
requirepass 密碼
配置其他機器可以連接袜茧,打開redis配置文件
bind 127.0.0.1 這句話注釋掉
protected_mode no 這句話yes修改為no
重啟才能生效 干掉這個進程重新打開
3、redis持久化機制rdb
持久化:在內(nèi)存中的數(shù)據(jù)不能保存瓣窄,如果想要保存需要保存到硬盤中
redis的數(shù)據(jù)就是在內(nèi)存中的笛厦,如果將redis關(guān)掉,再去打開俺夕,數(shù)據(jù)在不在裳凸?
redis有持久化機制贱鄙,就是rdb機制
stop-writes-on-bgsave-error yes 后臺寫入的時候,停止文件寫入
rdbcompression yes 寫文件的時候有壓縮格式
rdbchecksum yes 對rdb文件校驗
dbfilename dump.rdb 保存的rdb文件的文件名
dir ./ 保存的文件的路徑
可以手動保存 redis-cli bgsave
復制過來姨谷,替換這個文件逗宁,下次啟動的時候就是使用的新的rdb文件
4、python操作redis
import redis
每一個指令到代碼中都是一個函數(shù)梦湘,然后輸入和輸出就會變成函數(shù)的輸入和輸出
見代碼
5瞎颗、MongoDB安裝
MongoDB也是一個數(shù)據(jù)庫,是一個NoSQL捌议,非關(guān)系型數(shù)據(jù)庫
直接保存在硬盤中哼拔,保存的數(shù)據(jù)類似json格式,字典格式
MongoDB開源免費瓣颅,你可以去官網(wǎng)下載安裝包還有文檔倦逐,文檔寫了如何安裝和使用,但是都是英文看不懂弄捕,而且這個源碼包下載不下來卡者。
支持-windows、linux章钾、mac