Redis是一個(gè)開源的使用ANSI C語言編寫没讲、遵守BSD協(xié)議沛善、支持網(wǎng)絡(luò)惠桃、可基于內(nèi)存亦可持久化的日志型坷剧、Key-Value數(shù)據(jù)庫.
官網(wǎng):https://redis.io/
最新穩(wěn)定版已經(jīng)更新到4.0.10,但是官方?jīng)]有windows版本下載惰爬。
windows版本: https://github.com/MicrosoftArchive/redis/releases
github上有個(gè)windows版本3.2.100,由微軟維護(hù)的,目前已不更新听隐。
g友 redis4 : https://github.com/tporadowski/redis/releases
這是 Redis 4.0.2.2 for Windows (alpha)
安裝
windows:
下載
這里選擇的是3.2.100版本
安裝過程會(huì)提示輸入端口(默認(rèn)6379)补鼻,和設(shè)置最大內(nèi)存...
下一步....完成。
完成后雅任,會(huì)自動(dòng)配置到系統(tǒng)服務(wù)风范,并且是已經(jīng)啟用的狀態(tài)。
檢測(cè)是否安裝成功:
命令行 輸入 redis-cli 即可進(jìn)入交互模式沪么。(安裝時(shí)需勾選配置到環(huán)境變量硼婿,否則需要手動(dòng)配置。)
Linux:
apt-get install redis-server
命令行輸入:redis-cli 即可進(jìn)入交互模式
配置文件一般在 /etc/redis/redis.conf
修改配置后, service redis restart
若設(shè)置密碼后禽车,需要 redis-cli -a 密碼 才可進(jìn)入寇漫。
連接遠(yuǎn)程 redis 服務(wù):
命令行:redis-cli -h HOST -p PORT -a password
如果上面的方式連接不到服務(wù)端,請(qǐng)參照下圖確認(rèn):
啟動(dòng),停止殉摔,重啟服務(wù):
/etc/init.d/redis-server start(stop)(restart)
可視化工具 Redis Desktop Manager
https://github.com/uglide/RedisDesktopManager/releases
redis-py
安裝:pipenv install redis
基本使用:
關(guān)于set:
基礎(chǔ)
Redis一共支持五種數(shù)據(jù)類型:string(字符串)州胳、hash(哈希)、list(列表)逸月、set(集合)和zset(sorted set 有序集合)栓撞。
以下操作,基于命令行下的原始操作碗硬,可能在redis-py中有個(gè)別不同瓤湘。
輸入 info 查看redis內(nèi)存情況
keys的命名
\n和空格 不能作為key的組成部分,key的長(zhǎng)度不限恩尾。
keys的操作
- select db-index
選擇數(shù)據(jù)庫弛说,默認(rèn)編號(hào)是0-15,共16個(gè) - keys *
查看當(dāng)前數(shù)據(jù)庫所有的key
增
刪
- del key1 key2……keyN
- flushdb
刪除當(dāng)前數(shù)據(jù)庫的所有key - flushall
刪除redis里的所有數(shù)據(jù)庫的所有key
改
- rename oldkey newkey
- expire key seconds
設(shè)置key的過期時(shí)間翰意。 - move key db-index
將key 從當(dāng)前數(shù)據(jù)庫移動(dòng)到指定數(shù)據(jù)庫
查
- exists key
測(cè)試key是否存在 - type key
返回key的類型木人,默認(rèn)是str。 - keys pattern
返回匹配指定模式的所有key - dbsize
返回當(dāng)前數(shù)據(jù)庫的key數(shù)量 - ttl key
返回key的剩余過期秒數(shù)冀偶。
str類型
增
- set key value
默認(rèn)情況虎囚,key不存在,則創(chuàng)建蔫磨;存在淘讥,則覆蓋。 - mset key1 value1 key2 value2……
一次設(shè)置多對(duì)鍵值對(duì)堤如。
刪
改
- incr key
執(zhí)行一次加1蒲列。 - decr key
執(zhí)行一次減1窒朋。 - incrby key integer
執(zhí)行一次減少 指定的整數(shù)。 - decrby key integer
執(zhí)行一次加上 指定的整數(shù)蝗岖。 - append key value
在key的后面添加字符侥猩。
查
- get key
- mget key1 key2 ……
一次獲得多個(gè)key的值。 - substr key start end
截取key的值抵赢,包括開始和結(jié)束位置的內(nèi)容欺劳。
list 類型
增
- lpush key string
在key對(duì)應(yīng)list的頭部添加字符串元素。 - rpush key string
從右邊添加元素铅鲤。
刪
- rpop key
在key對(duì)應(yīng)list的尾部刪除元素划提,返回刪除的元素。 - lpop key
從左邊刪除元素, 返回刪除的元素邢享。
改
查
- llen key
返回key的元素個(gè)數(shù)鹏往。 - lrange key start end
返回key指定區(qū)間內(nèi)的元素,包括開始和結(jié)束骇塘。 - ltrim key start end
截取list伊履,保留指定區(qū)間元素。
set 類型
增
- sadd key member1 member2……
向key中添加集合元素款违。如果元素已經(jīng)存在唐瀑,返回0
刪
- srem key member [,member2……]
將member從key中刪除。
改
- smove p1 p2 member
將member從p1中移動(dòng)到p2中插爹。
查
- scard key
返回key中的元素個(gè)數(shù)介褥。 - sismember key member
判斷member是不是在key中,是返回1递惋,不是返回0. - sinter key1 key2……
返回所有給定key的交集。 - sunion key1 key2……
返回所有給定key的并集溢陪。 - sdiff key1 key2……
返回所有給定key的差集萍虽。 - smembers key
返回key中的所有元素。
Sorted Set排序集合類型
和set一樣形真,sorted set也是string類型元素的集合杉编,不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè) 權(quán)(score)。通過 權(quán)值 可以有序的獲取集合中的元素咆霜。
增
- zadd key score member
添加元素到key邓馒,元素存在則更新對(duì)應(yīng)的score。
刪
- zrem key member
刪除指定元素蛾坯,成功返回1光酣,如果元素不存在返回0. - zremrangebyrank key min max
刪除集合中排名在指定區(qū)間的元素。包括min脉课,和max救军。默認(rèn)score按從小到大排财异。
改
- zincrby key incr member
按照incr的幅度增加對(duì)應(yīng)的member的score值,返回score值唱遭。
查
- zrank key member
返回指定元素在集合中的排名(下標(biāo))戳寸,集合中的元素是按score從小到大排序的。 - zrevrank key member
同zrank,排序按score從大到小排序拷泽。 - zrange key start end
類似lrange操作疫鹊,從集合中取指定區(qū)間的元素,返回的是有序結(jié)果司致。 - zrevrange key start end
和zrange相反的操作拆吆。 - zcard key
返回key中的元素個(gè)數(shù)。 - zscore key member
返回key集合中指定元素的score蚌吸。
hash類型
增
- hset key field value
設(shè)置 hash field 為指定值锈拨,如果key不存在,則先創(chuàng)建羹唠。 - hmset key field1 value1 field2 value2……
刪
- hdel key field
刪除指定的field
改
- hincrby key field integer
將指定的hash field加上指定的值奕枢。
查
- hget key field
獲取指定的field的值。 - hmget key field1 field2……
- hexists key field
判斷field是不是存在佩微。 - hlen key
返回field 的數(shù)量缝彬。 - hkeys key
返回key中的所有field。 - hvals key
返回key中的所有value哺眯。 - hgetall key
返回key中的所有field和value谷浅。