Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù).
官網(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版本
安裝過(guò)程會(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ù)類(lèi)型: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ù)庫(kù),默認(rèn)編號(hào)是0-15,共16個(gè) - keys *
查看當(dāng)前數(shù)據(jù)庫(kù)所有的key
增
刪
- del key1 key2……keyN
- flushdb
刪除當(dāng)前數(shù)據(jù)庫(kù)的所有key - flushall
刪除redis里的所有數(shù)據(jù)庫(kù)的所有key
改
- rename oldkey newkey
- expire key seconds
設(shè)置key的過(guò)期時(shí)間。 - move key db-index
將key 從當(dāng)前數(shù)據(jù)庫(kù)移動(dòng)到指定數(shù)據(jù)庫(kù)
查
- exists key
測(cè)試key是否存在 - type key
返回key的類(lèi)型,默認(rèn)是str。 - keys pattern
返回匹配指定模式的所有key - dbsize
返回當(dāng)前數(shù)據(jù)庫(kù)的key數(shù)量 - ttl key
返回key的剩余過(guò)期秒數(shù)。
str類(lèi)型
增
- 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的值,包括開(kāi)始和結(jié)束位置的內(nèi)容。
list 類(lèi)型
增
- 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)的元素,包括開(kāi)始和結(jié)束。 - ltrim key start end
截取list,保留指定區(qū)間元素。
set 類(lèi)型
增
- 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排序集合類(lèi)型
和set一樣,sorted set也是string類(lèi)型元素的集合,不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè) 權(quán)(score)。通過(guò) 權(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
類(lèi)似lrange操作,從集合中取指定區(qū)間的元素,返回的是有序結(jié)果。 - zrevrange key start end
和zrange相反的操作。 - zcard key
返回key中的元素個(gè)數(shù)。 - zscore key member
返回key集合中指定元素的score。
hash類(lèi)型
增
- 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。



