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"
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
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"
查詢鍵值:
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"