redis的經常使用命令

windows 啓動redis服務redis

先用管理員模式打開cmd,到redis的根目錄,再輸入下面的命令

windows 註冊服務
redis-server --service-install redis.windows.conf 

windows 啓動服務
redis-server --service-start

windows 中止服務
 redis-server --service-stop數據庫

 

也可以使用 下面命令啓動windows

redis-server.exe redis.windows.conf 緩存

輸入以後,會顯示以下界面:session

查看 redis 是否啓動app

$ redis-cli

以上命令將打開如下終端:dom

redis 127.0.0.1:6379>

 127.0.0.1 是本機 IP ,6379 是 redis 服務端口。如今咱們輸入 PING 命令。spa

redis 127.0.0.1:6379> ping
PONG

說明咱們已經成功安裝啓動了redisserver

 

鏈接服務blog

redis-cli.exe -h 127.0.0.1 -p 6379


查詢字符串

KEYS pattern 

查找全部匹配給定的模式的鍵,keys * 查看全部緩存的鍵

 

127.0.0.1:6379> GET db
(nil)
 #不存在
127.0.0.1:6379> SET db redis
OK
127.0.0.1:6379> GET db
"redis"
#查詢成功
127.0.0.1:6379> keys *
1) "key4"
2) "key3"
3) "sessionid"
4) "key2"
 
獲取全部key的值
 
MGET key1 key2 key3 key4 
 
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "db"
5) "sessionid"
127.0.0.1:6379> mget key8 key5 key4 db
1) "8"
2) "87"
3) "452"
4) "3"

 

獲取指定key值的長度

STRLEN key

127.0.0.1:6379> get db
"123"
127.0.0.1:6379> strlen db
(integer) 3

 

設置 一個key 值
 
set key value
 
127.0.0.1:6379>  set db abc
OK

 

設置一個key的值,只有當key不存在時

SETNX key value

127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "key9"
5) "db"
6) "sessionid"
127.0.0.1:6379> setnx key8 88
(integer) 0
127.0.0.1:6379> setnx key10 10
(integer) 1
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key10"
4) "key4"
5) "key9"
6) "db"
7) "sessionid"
127.0.0.1:6379> get key10
"10"

 

設置key-value,並設置過時時間

 SETEX key seconds value

127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key10"
4) "key4"
5) "key9"
6) "db"
7) "sessionid"
127.0.0.1:6379> setex key10 10 20
OK
127.0.0.1:6379> ttl key10
(integer) -2

  

設置多個key 的值

MSET key1 value1  key2 value2 key3 value3 key4 value4 

若是key不存在 則設置一個新的key並賦值

127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "db"
5) "sessionid"
127.0.0.1:6379> mget key8 key5 key4 db
1) "8"
2) "87"
3) "452"
4) "3"
127.0.0.1:6379> mset key8 1 key5 5 key4 4 db 123
OK
127.0.0.1:6379> mget key8 key5 key4 db
1) "1"
2) "5"
3) "4"
4) "123"

  

設置多個key value,僅當key不存在時

MSETNX key1 value1 key2 value2 key3 value3 

MSETNX 只要有一個存在的key 則設置所有不成功

127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "key9"
5) "db"
6) "sessionid"
127.0.0.1:6379> msetnx key8 235 key10 58
(integer) 0
127.0.0.1:6379> msetnx key10 69 key11 11
(integer) 1

  

 

追加一個值到key上,返回追加後的value的大小

APPEND key value

 

127.0.0.1:6379> get key4
"4"
127.0.0.1:6379> append key4 52
(integer) 3
127.0.0.1:6379> get key4
"452"

若是key 不存在 會新建一個key

127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"

127.0.0.1:6379> append key5 57
(integer) 2

127.0.0.1:6379> keys *
1) "key5"
2) "key4"
3) "db"
4) "sessionid"

127.0.0.1:6379> get key5
"57"

 

從新設置key的value,並獲取設置前的值  

GETSET key value

若是key不存在,則設置一個新的key,返回 nill

127.0.0.1:6379> get key5
"57"
127.0.0.1:6379> getset key5 87
"57"
127.0.0.1:6379> get key5
"87"

key不存在

127.0.0.1:6379> keys *
1) "key5"
2) "key4"
3) "db"
4) "sessionid"
127.0.0.1:6379> getset key8 8
(nil)
127.0.0.1:6379> keys *
1) "key8"
2) "key5"
3) "key4"
4) "db"
5) "sessionid"
127.0.0.1:6379> get key8
"8"

  

查詢鍵值:
get key
127.0.0.1:6379> GET db
"redis"
#查詢成功

 

 

查詢列表中的元素

lrange key 0 -1

127.0.0.1:6379> lrange list_name  0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
#0 -1表明區間爲第一個到最一個
#可見,在列表中有5個元素

  

刪除指定的鍵值(一個或多個)

DEL key1 key2 
127.0.0.1:6379> del db userName
(integer) 2

 

導出key的值

dump key

若是 key 不存在,那麼返回 nil。不然,返回序列化以後的值。

127.0.0.1:6379> dump token
"\x00\xc1\x95&\a\x002h\xcc\xbaxu=\xac"

  

 查詢一個key是否存在

EXISTS key

若是 key 不存在,那麼返回 0。不然,返回1

127.0.0.1:6379> exists redis
(integer) 0
127.0.0.1:6379> exists db
(integer) 1

 

設置key的有效時間(秒)

EXPIRE key time

 

127.0.0.1:6379> expire db 200
(integer) 1

  

獲取key的有效時間(秒) 若是key不存在,返回 -2

ttl db

127.0.0.1:6379> expire db 20
(integer) 1
127.0.0.1:6379> ttl db
(integer) -2

127.0.0.1:6379> expire db 20000
(integer) 1
127.0.0.1:6379> ttl db
(integer) 19992

 

設置key的有效時間(毫秒)

PEXPIRE  key time

127.0.0.1:6379> pexpire db 2000
(integer) 1

 

獲取key的有效毫秒數(毫秒)

PTTL key

127.0.0.1:6379> pexpire db 2000
(integer) 1
127.0.0.1:6379> pttl db
(integer) -2

127.0.0.1:6379> pexpire db 200000
(integer) 1
127.0.0.1:6379> pttl db
(integer) 194559

  

將一個key重命名

RENAME key newkey

若是該newkey已經存在了,那就用將被更名的key的value覆蓋至與已存在老的newkey的值

127.0.0.1:6379> set key1 1
OK
127.0.0.1:6379> set key2 2
OK
127.0.0.1:6379> set key3 3
OK
127.0.0.1:6379> set key4 4

127.0.0.1:6379> keys *
1) "key1"
2) "key4"
3) "key3"
4) "sessionid"
5) "key2"

127.0.0.1:6379> rename key1 key2
OK
127.0.0.1:6379> keys *
1) "key4"
2) "key3"
3) "sessionid"
4) "key2"

127.0.0.1:6379> get key2
"1"

127.0.0.1:6379> rename key3 db
OK
127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"
4) "key2"

127.0.0.1:6379> get db
"3"

  

重命名一個key


 RENAMENX key newkey

新的key必須是不存在的key

修改爲功時,返回 1 。
若是 newkey 已經存在,返回 0 。

127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"
4) "key2"

127.0.0.1:6379> renamenx key2 db
(integer) 0


127.0.0.1:6379> renamenx key2 key8
(integer) 1

127.0.0.1:6379> keys *
1) "key8"
2) "key4"
3) "db"
4) "sessionid"

127.0.0.1:6379> get key8
"1"

 

返回一個隨機的key  

RANDOMKEY

127.0.0.1:6379> randomkey
"key8"

獲取key 的存儲類型  

TYPE key

127.0.0.1:6379> type db
string

把key移動到另一個數據庫裏 

 move key DBID 

 SELECT dbid  (選擇不一樣的DB)

redis的DB一共有16個,從 0-15,默認是D0個,咱們能夠經過命令 SELECT dbid 選擇不一樣的DB,好比select 1;select 15等

127.0.0.1:6379> keys *
1) "key8"
2) "key4"
3) "db"
4) "sessionid"
127.0.0.1:6379> move key8 1
(integer) 1
127.0.0.1:6379> keys *
1) "key4"
2) "db"
3) "sessionid"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "key8"
127.0.0.1:6379[1]>

  

清除當前DB 數據(慎用)

FLUSHDB  清除當前DB裏的全部數據

FLUSHALL  清除全部的DB裏的全部數據

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "key8"
127.0.0.1:6379[1]> flushdb
OK
127.0.0.1:6379[1]> keys *
(empty list or set)

  

 key 值 加1操做

INCR key

key值必須爲64位有符號整型數據   

若是key的值不是整數,則報錯(error)   若是指定的key不存在,則在執行incr操做以前,會將他的值設爲0

127.0.0.1:6379> get key8
"1"
127.0.0.1:6379> incr key8
(integer) 2
127.0.0.1:6379> get key8
"2"

127.0.0.1:6379> get key5
"abc"
127.0.0.1:6379> incr key5
(error) ERR value is not an integer or out of range

  

key值增長一個整數

INCRBY key increment

key值必須爲64位有符號整型數據 

若是key的值不是整數,則報錯(error)   若是指定的key不存在,則在執行incr操做以前,會將他的值設爲0

127.0.0.1:6379> get key8
"2"
127.0.0.1:6379> incrby key8 20
(integer) 22
127.0.0.1:6379> get key8
"22"
127.0.0.1:6379> get key5
"abc"
127.0.0.1:6379> incrby key5 20
(error) ERR value is not an integer or out of range

key值減1

DECR key

 key值必須爲64位有符號整型數據

若是key的值不是整數,則報錯(error)   若是指定的key不存在,則在執行incr操做以前,會將他的值設爲0

127.0.0.1:6379> get key8
"22"
127.0.0.1:6379> decr key8
(integer) 21
127.0.0.1:6379> get key8
"21"

key值減去一個整數

DECRBY key increment

key值必須爲64位有符號整型數據

若是key的值不是整數,則報錯(error)   若是指定的key不存在,則在執行incr操做以前,會將他的值設爲0

127.0.0.1:6379> get key8
"21"
127.0.0.1:6379> decrby key8 10
(integer) 11
127.0.0.1:6379> get key8
"11"
相關文章
相關標籤/搜索