安裝
-
解壓:
tar -zxvf redis.tar.gz
-
安裝:
進(jìn)入redis目錄
make && make install
可在/usr/local/bin/目錄中查看,bin目錄中可以在任何地方運(yùn)行。

image.png
運(yùn)行:
-
直接運(yùn)行
redis-server

image.png
-
后臺(tái)運(yùn)行
在 redis.conf 文件中修改:daemonize yes
redis-service /路徑/redis.conf
redis啟動(dòng)關(guān)閉等命令
-
后臺(tái)啟動(dòng)redis:
redis-service /路徑/redis.conf
-
進(jìn)入redis客戶端:
redis-cli
或者
redis-cli -h 127.0.0.1 -p 6379
redis-cli --raw #可以解決中文亂碼
測(cè)試客戶端是否連接,并關(guān)閉redis

image.png
-
關(guān)閉redis:
127.0.0.1:6379> shutdown
或者
redis-cli shutdown
redis基本指令
keys * #查詢當(dāng)前庫(kù)的所有鍵
exists <key> #判斷某個(gè)鍵是否存在
type <key> #查看鍵的類型
del <key> #刪除某個(gè)鍵
expire <key> <seconds> #為鍵值設(shè)置過期時(shí)間,單位秒
ttl <key> #查看還有多少秒過期,-1表示不過期,-2表示已過期
dbsize # 查看當(dāng)前數(shù)據(jù)庫(kù)的key的數(shù)量
Flushdb #清空當(dāng)前庫(kù)
Flushall #清空所有庫(kù)
String指令
get <key> #查詢對(duì)應(yīng)鍵值
set <key> <value> #添加鍵值對(duì)
append <key> <value> #將給定的<value>追加到原值的末尾
strlen <key> #獲得值的長(zhǎng)度
setnx <key> <value> #只有在key不存在時(shí)設(shè)置key的值
incr <key> #將key中存儲(chǔ)的數(shù)字值加1,只對(duì)數(shù)字值操作,如果為空,新增值為1
decr <key> #將key中存儲(chǔ)的數(shù)字值減1,只對(duì)數(shù)字值操作,如果為空,新增值為-1
incrby/decrby <key> <步長(zhǎng)> #將key中存儲(chǔ)的數(shù)字值增減,自定義步長(zhǎng)
mset <key1> <value1> <key2> <value2>... #同時(shí)設(shè)置一個(gè)或者多個(gè)key-value對(duì)
mget <key1> <key2>... #同時(shí)獲取一個(gè)或者多個(gè)value
msetnx <key1> <value1> <key2> <value2>... #同時(shí)設(shè)置一個(gè)或者多個(gè)key-value對(duì),當(dāng)且僅當(dāng)所有給定key都不存在
getrange <key> <起始位置> <結(jié)束位置> #獲取值的范圍,類似java中的substring
setrange <key> <起始位置> <value> #用<value>覆蓋<key>所存儲(chǔ)的字符串值,從<起始位置>開始
setex <key> <過期時(shí)間> <value> #設(shè)置鍵值的同時(shí),設(shè)置過期時(shí)間,單位為秒
getset <key> <value> #設(shè)置新值的同時(shí)獲得舊值
List指令
lpush/rpush <key> <value1> <value2>... #從左邊/右邊插入一個(gè)或多個(gè)值
lpop/rpop <key> #從左邊/右邊吐出一個(gè)值,值在鍵在,值光鍵亡
rpoplpush <key1> <key2> #從<key1>列表右邊吐出一個(gè)值,插到<key2>列表左邊
lrange <key> <start> <stop> #按照索引下標(biāo)獲得元素(從左到右)
lindex <key> <index> #按照索引下標(biāo)獲得元素(從左到右)
llen <key> #獲得列表長(zhǎng)度
linsert <key> after <value> <NEWvalue> #在<value>的后面插入<newvalue>插入值
lrem <key> <n> <value> #從左邊刪除n個(gè)value(從左到右)
Set指令
sadd <key> <value1> <value2>... #將一個(gè)或多個(gè)member元素加入到集合key當(dāng)中,已經(jīng)存在于集合的member元素將被忽略
smemebers <key> #取出該集合的所有值
sismember <key> <value> #判斷集合<key>是否為含有該<value>值,有返回1,沒有返回0
scard <key> #返回該集合的元素個(gè)數(shù)
srem <key> <value1> <value2>... #刪除集合中的某個(gè)元素
spop <key> #隨機(jī)從該集合中吐出一個(gè)值
srandmember <key> <n> #隨機(jī)從該集合中取出n個(gè)值,不會(huì)從集合中刪除
sinter <key1> <key2> #返回兩個(gè)集合的交集元素
sunion <key1> <key2> #返回兩個(gè)集合的并集元素
sdiff <key1> <key2> #返回兩個(gè)集合的差集元素
Hash指令
hset <key> <field> <value> #給<key>集合中的<field>鍵賦值<value>
hget <key1> <field> #從<key1>集合<field>取出value
hmset <key1> <field1> <value1> <field2> <value2>... #批量設(shè)置hash的值
hexists key <field> #查看哈希表key中,給定域field是否存在
hkeys <key> #列出該hash集合的所有field
hvals <key> #列出該hash集合的所有value
hincrby <key> <field> <increment> #為哈希表key中的域field的值增加increment,減少為-increment
hsetnx <key> <field> <value> #將哈希表key中的域field的值設(shè)置為value,當(dāng)且僅當(dāng)域field不存在
zset指令
zadd <key> <score1> <value1> <score2> <value2>... #將一個(gè)或多個(gè)memeber元素及其score值加入到有序集key當(dāng)中
zrange <key> <start> <stop> [WITHSCORES] #返回有序集key中,下標(biāo)在<start> <stop>之間的元素,帶WITHSCORES,可以讓分?jǐn)?shù)一起和值返回到結(jié)果集。
zrangebyscore key min max [WITHSCORES] [limit offset count] #返回有序集key中,所有score值介于min和max之間(包括等于min或max)的成員。有序集成員按score值遞增(從小到大)次序排列
zrevrangebyscore key max min [withscores] [limit offset count] #同上,改為從大到小排序
zincrby <key> <increment> <value> #為元素的score加上增量
zrem <key> <value> #刪除該集合下,指定的元素
zcount <key> <min> <max> #統(tǒng)計(jì)該集合,分?jǐn)?shù)區(qū)間內(nèi)的元素個(gè)數(shù)
zrank <key> <value> #返回該值在集合中的排名,從0開始