文章目錄
Redis 3.2 —— 安裝及基本命令
目的
- Win10 安裝 Redis
- Win10 安裝 Redis客戶端
- Redis常用基本命令
Win10 安裝 Redis
版本及安裝
https://github.com/microsoftarchive/redis/releases 點擊打開下載地址
版本:3.2.100
參照並鳴謝:
博客:https://www.cnblogs.com/juncaoit/p/10122642.html
按照上面博客進行,開機會自動啓動redis
強調:修改密碼
後面會使用客戶端能訪問,需要設置密碼。
編輯 redis.windows-service.conf 修改密碼
- 打開後
搜索 requirepass
,這是redis密碼,默認是沒有密碼,這裏我們設置爲123456
修改redis.windows-service.conf,而不是redis.windows.conf。後者是非系統服務方式啓動程序使用的配置文件。
插入一條數據
- 我的Redis放到C盤跟目錄了,地址爲C:\Redis,下面代碼是向redis中設置一個
k[frank],v[one-redis-value]
。
C:\Redis>redis-cli.exe
127.0.0.1:6379> set frank "one-reids-value"
OK
127.0.0.1:6379>
Win10 安裝 Redis客戶端
客戶端:Redis Desktop Manager
下載地址:https://redisdesktop.com/pricing#osx-download
安裝後界面
我下載的是0.9.3.817
- 點擊 連接到Redis服務器,錄入賬號密碼,並測試連接
- 查看之前插入的值
Redis 常用基本命令
- 首先看一下Redis目錄下都有什麼
基礎命令
命令 | 描述 |
---|---|
redis-server redis.windows.conf | 啓動,win10可以再服務中啓動 |
redis-cli.exe | 啓動客戶端,參照上面通過cmd插入key爲“frank”的例子 |
quit | 關閉連接 |
auth | (僅限啓用時)簡單的密碼驗證 |
EXISTS key | 判斷一個鍵是否存在;存在返回 1;否則返回0; |
DEL key | 刪除某個key,或是一系列key;DEL key1 key2 key3 key4 |
TYPE key | 返回某個key元素的數據類型 ( none:不存在,string:字符,list,set,zset,hash) |
KEYS pattern | 返回匹配的key列表 (KEYS foo*:查找foo開頭的keys) |
RANDOMKEY | 隨機獲得一個已經存在的key,如果當前數據庫爲空,則返回空字符串 |
RENAME oldname newname | 更改key的名字,新鍵如果存在將被覆蓋 |
RENAMENX oldname newname | 更改key的名字,如果名字存在則更改失敗 |
DBSIZE | 返回當前數據庫的key的總數 |
EXPIRE | 設置某個key的過期時間(秒) : EXPIRE bruce 1000 - 設置bruce這個key1000秒後系統自動刪除 注意:如果在還沒有過期的時候,對值進行了改變,那麼那個值會被清除。 |
TTL | 查找某個key還有多長時間過期,返回時間秒 |
SELECT index | 選擇數據庫 |
MOVE key dbindex | 將指定鍵從當前數據庫移到目標數據庫 dbindex 成功返回 1;否則返回0(源數據庫不存在key或目標數據庫已存在同名key); |
FLUSHDB | 清空當前數據庫中的所有鍵 |
FLUSHALL | 清空所有數據庫中的所有鍵 |
字符串的命令
命令 | 描述 |
---|---|
SET key value | 給一個鍵設置字符串值。 SET keyname datalength data 例如:(SET bruce 10 paitoubing:保存key爲burce,字符串長度爲10的一個字符串paitoubing到數據庫) data最大不可超過1G。 |
GET key | 獲取某個key 的value值。 如key不存在,則返回字符串“nil”;如key的值不爲字符串類型,則返回一個錯誤。 |
GETSET key value | 可以理解成獲得的key的值然後SET這個值,操作更便捷: SET bruce 10 paitoubing,這個時候需要修改bruce變成1234567890並獲取這個以前的數據paitoubing, GETSET bruce 10 1234567890 |
MGET key1 key2 … keyN | 一次性返回多個鍵的值 |
SETNX key value SETNX | 與SET的區別是SET可以創建與更新key的value,而SETNX是如果key不存在,則創建key與value數據MSET key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性設置多個鍵和值 |
MSETNX key1 value1 key2 value2 … keyN valueN | 在一次原子操作下一次性設置多個鍵和值(目標鍵不存在情況下,如果有一個以上的key已存在,則失敗) |
INCR key | 自增鍵值 |
INCRBY key integer | 令鍵值自增指定數值 |
DECR key | 自減鍵值 |
DECRBY key integer | 令鍵值自減指定數值 |
lists的命令
命令 | 描述 |
---|---|
RPUSH key value | 從 List 尾部添加一個元素(如序列不存在,則先創建,如已存在同名Key而非序列,則返回錯誤) |
LPUSH key value | 從 List 頭部添加一個元素 |
LLEN key | 返回一個 List 的長度 |
LRANGE key start end | 從自定的範圍內返回序列的元素 : (LRANGE testlist 0 2;返回序列testlist前0 1 2元素) |
LTRIM key start end | 修剪某個範圍之外的數據: (LTRIM testlist 0 2;保留0 1 2元素,其餘的刪除) |
LINDEX key index | 返回某個位置的序列值: (LINDEX testlist 0;返回序列testlist位置爲0的元素) |
LSET key index value | 更新某個位置元素的值 |
LREM key count value | 從 List 的頭部(count正數)或尾部(count負數)刪除一定數量(count)匹配value的元素,返回刪除的元素數量。 |
LPOP key | 彈出 List 的第一個元素 |
RPOP key | 彈出 List 的最後一個元素 |
RPOPLPUSH srckey dstkey | 彈出 _srckey_ 中最後一個元素並將其壓入 _dstkey_ 頭部,key不存在或序列爲空則返回“nil” 處理集合(sets)的命令(有索引無序序列) |
SADD key member | 增加元素到SETS序列,如果元素(membe)不存在則添加成功 1,否則失敗 0;(SADD testlist 3 \n one) |
SREM key member | 刪除SETS序列的某個元素,如果元素不存在則失敗0,否則成功 1(SREM testlist 3 \N one) |
SPOP key | 從集合中隨機彈出一個成員 |
SMOVE srckey dstkey member | 把一個SETS序列的某個元素 移動到 另外一個SETS序列: (SMOVE testlist test 3\n two;從序列testlist移動元素two到 test中,testlist中將不存在two元素) |
SCARD key | 統計某個SETS的序列的元素數量 |
SISMEMBER key member | 獲知指定成員是否存在於集合中 |
SINTER key1 key2 … keyN | 返回key1, key2, …, keyN 中的交集 |
SINTERSTORE dstkey key1 key2 … keyN | 將 key1, key2, …, keyN 中的交集存入 dstkey |
SUNION key1 key2 … keyN | 返回 key1, key2, …, keyN 的並集 |
SUNIONSTORE dstkey key1 key2 … keyN | 將 key1, key2, …, keyN 的並集存入 dstkey |
SDIFF key1 key2 … keyN | 依據 key2, …, keyN 求 key1 的差集,官方例子:key1=x,a,b,c key2=c key3=a,d SDIFF key1,key1,key3 => x,b |
SDIFFSTORE dstkey key1 key2 … keyN | 依據 key2, …, keyN 求 key1 的差集並存入 dstkey |
SMEMBERS key | 返回某個序列的所有元素 |
SRANDMEMBER key | 隨機返回某個序列的元素 |
處理有序集合(sorted sets)的命令 (zsets)
命令 | 描述 |
---|---|
ZADD key score member | 添加指定成員到有序集合中,如果目標存在則更新score(分值,排序用) |
ZREM key member | 從有序集合刪除指定成員 |
ZINCRBY key increment member | 如果成員存在則將其增加_increment_,否則將設置一個score爲_increment_的成員 |
ZRANGE key start end | 返回升序排序後的指定範圍的成員 |
ZREVRANGE key start end | 返回降序排序後的指定範圍的成員 |
ZRANGEBYSCORE key min max | 返回所有符合score >= min和score <= max的成員 |
ZCARD key | 返回有序集合的元素數量 |
ZSCORE key element | 返回指定成員的SCORE值 |
ZREMRANGEBYSCORE key min max | 刪除符合 score >= min 和 score <= max 條件的所有成員 |
排序(List, Set, Sorted Set)
SORT key BY pattern LIMIT start end GET pattern ASC|DESC ALPHA 按照指定模式排序集合或List
命令 | 描述 |
---|---|
SORT mylist | 默認升序 ASC |
SORT mylist DESC | 倒序 |
SORT mylist LIMIT 0 10 | 從序號0開始,取10條 |
SORT mylist LIMIT 0 10 ALPHA DESC | 分頁加排序 |
SORT mylist BY weight_* | 按首字母排序 |
SORT mylist BY weight_* GET object_* | 按首字母排序 |
SORT mylist BY weight_* GET object_* GET # | 按首字母排序 |
SORT mylist BY weight_* STORE resultkey | 將返回的結果存放於resultkey序列(List) |
持久控制
命令 | 描述 |
---|---|
SAVE | 同步保存數據到磁盤 |
BGSAVE | 異步保存數據到磁盤 |
LASTSAVE | 返回上次成功保存到磁盤的Unix時間戳 |
SHUTDOWN | 同步保存到服務器並關閉 Redis 服務器(SAVE+QUIT) |
BGREWRITEAOF | 當日志文件過長時重寫日誌文件 |
遠程控制命令
命令 | 描述 |
---|---|
INFO | 提供服務器的信息和統計信息 |
MONITOR | 實時輸出所有收到的請求 |
SLAVEOF | 修改複製選項 |
注意:上面命令都是大寫,其實小寫也可以,同時支持大小寫。
補充:關於Windows下啓動方式
- cmd進入redis根目錄,執行下列命令
redis-server.exe redis.windows.conf
得到的結果如下:
- 打開一個新的終端(cmd),測試redis是否啓動,輸入一下命令
redis-cli
如果成功登陸,會顯示本機IP,如下圖所示:
這樣Redis便啓動成功了。