redis基礎操做

redis基礎操做

經常使用:html

AUTH password  驗證密碼是否正確
ECHO message 打印字符串
PING  查看服務是否運行(PONG)
QUIT 關閉當前的鏈接
SELECT index 切換到指定的數據庫(默認是0號數據庫)

一. redis的數據類型

redis支持的五種數據類型: 
string(字符串) hash(哈希) list(列表) set(集合) zset(有序集合)mysql

二. redis鍵(key)

redis的鍵命令用於管理redis的鍵git

127.0.0.1:6379> SET redis www.redis.net.cn
OK
127.0.0.1:6379> GET redis
"www.redis.net.cn"
127.0.0.1:6379> DEL redis
(integer) 1

127.0.0.1:6379> set redis1 www.redis.com
OK
127.0.0.1:6379> set redis2 www.mysql.com
OK
127.0.0.1:6379> set redis3 www.mongodb.com
OK
127.0.0.1:6379> KEYS redis*
1) "redis3"
2) "redis1"
3) "redis2"
SET key  value 設置key及其對應的value
GET key 查看key對應的value
 DEL key  用於在 key 存在是刪除 key。
 DUMP key  序列化給定 key ,並返回被序列化的值。
 EXISTS key 檢查給定 key 是否存在。
 EXPIRE key seconds 爲給定 key 設置過時時間。
PEXPIRE key milliseconds 設置 key 的過時時間億以毫秒計。
 PEXPIREAT key milliseconds-timestamp  設置 key 過時時間的時間戳(unix timestamp) 以毫秒計
KEYS pattern 查找全部符合給定模式( pattern)的 key 。
MOVE key db 將當前數據庫的 key 移動到給定的數據庫 db 當中。
PERSIST key 移除 key 的過時時間,key 將持久保持。
PTTL key  以毫秒爲單位返回 key 的剩餘的過時時間。
 TTL key  以秒爲單位,返回給定 key 的剩餘生存時間(TTL, time to live)。
RANDOMKEY 從當前數據庫中隨機返回一個 key 。
 RENAME key newkey  修改 key 的名稱
RENAMENX key newkey  僅當 newkey 不存在時,將 key 更名爲 newkey 。
TYPE key 返回 key 所儲存的值的類型。

三. redis字符串(string)

語法:redis 127.0.0.1:6379 > COMMAND KEY_NAMEredis

127.0.0.1:6379> set redis www.redis.net
OK
127.0.0.1:6379> get redis
"www.redis.net"
GETRANGE key start end 返回 key 中字符串值範圍內的子字符
GETSET key value 將給定 key 的值設爲 value ,並返回 key 的舊值(old value)。
GETBIT key offset   對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)。
 MGET key1 [key2..]  獲取全部(一個或多個)給定 key 的值。
SETBIT key offset value 對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。
SETEX key seconds value  將值 value 關聯到 key ,並將 key 的過時時間設爲 seconds (以秒爲單位)。
SETNX key value 只有在 key 不存在時設置 key 的值。
SETRANGE key offset value 用 value 參數覆寫給定 key 所儲存的字符串值,從偏移量 offset 開始。
 STRLEN key 返回 key 所儲存的字符串值的長度。
MSET key value [key value ...] 同時設置一個或多個 key-value 對。
MSETNX key value [key value ...] 同時設置一個或多個 key-value 對,當且僅當全部給定 key 都不存在
PSETEX key milliseconds value 這個命令和 SETEX 命令類似,但它以毫秒爲單位設置 key 的生存時間,而不是像 SETEX 命令那樣,以秒爲單位。
 INCR key 將 key 中儲存的數字值增一。
INCRBY key increment   將 key 所儲存的值加上給定的增量值(increment) 。
 DECR key  將 key 中儲存的數字值減一。
DECRBY key decrement key 所儲存的值減去給定的減量值(decrement) 。
APPEND key value 若是 key 已經存在而且是一個字符串, APPEND 命令將 value 追加到 key 原來的值的末尾。

四. redis哈希(Hash)

redis hash 是一個string 類型的field和value的映射表,hash特別適合用於存儲對象。sql

127.0.0.1:6379> HMSET w3ckey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
127.0.0.1:6379> HGETALL w3ckey
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
HDEL key field2 [field2] 刪除一個或多個哈希表字段
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
HGET key field 獲取存儲在哈希表中指定字段的值
HGETALL key  獲取在哈希表中指定 key 的全部字段和值
HINCRBY key field increment  爲哈希表 key 中的指定字段的整數值加上增量 increment 。
 HINCRBYFLOAT key field increment 爲哈希表 key 中的指定字段的浮點數值加上增量 increment 。
 HKEYS key 獲取全部哈希表中的字段
 HLEN key 獲取哈希表中字段的數量
HMGET key field1 [field2] 獲取全部給定字段的值
 HMSET key field1 value1 [field2 value2 ] 同時將多個 field-value (域-值)對設置到哈希表 key 中。
 HSET key field value 將哈希表 key 中的字段 field 的值設爲 value 。
HSETNX key field value 只有在字段 field 不存在時,設置哈希表字段的值。
HVALS key 獲取哈希表中全部值
HSCAN key cursor [MATCH pattern] [COUNT count]  迭代哈希表中的鍵值對。

五. redis列表(LIST)

redis的列表是簡單的字符串列表,一般是安裝插入的順序排序,可是能夠從一個列表的頭部(左邊)或者尾部(右邊)插入。mongodb

127.0.0.1:6379> LPUSH apple www.apple.com
(integer) 2
127.0.0.1:6379> LPUSH apple www.baidu.com
(integer) 3
127.0.0.1:6379> LPUSH apple www.baidu.com
(integer) 4
127.0.0.1:6379> LPUSH apple www.baidu.com
(integer) 5
127.0.0.1:6379> LRANGE apple 0 10
1) "www.baidu.com"
2) "www.baidu.com"
3) "www.baidu.com"
4) "www.apple.com"
5) "www.apple.com"
127.0.0.1:6379> BLPOP apple 0
1) "apple"
2) "www.baidu.com"
127.0.0.1:6379> BLPOP apple 0
1) "apple"
2) "www.baidu.com"
127.0.0.1:6379> BLPOP apple 0
1) "apple"
2) "www.baidu.com"
127.0.0.1:6379> BLPOP apple 0
1) "apple"
2) "www.apple.com"
127.0.0.1:6379> BLPOP apple 0
1) "apple"
2) "www.apple.com"
127.0.0.1:6379> LRANGE apple 0 10
(empty list or set)
BLPOP key1 [key2 ] timeout 移出並獲取列表的第一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
BRPOP key1 [key2 ] timeout  移出並獲取列表的最後一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
BRPOPLPUSH source destination timeout 從列表中彈出一個值,將彈出的元素插入到另一個列表中並返回它; 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
LINDEX key index  經過索引獲取列表中的元素
LINSERT key BEFORE|AFTER pivot value 在列表的元素前或者後插入元素
 LLEN key  獲取列表長度
LPOP key 移出並獲取列表的第一個元素
 LPUSH key value1 [value2]  將一個或多個值插入到列表頭部
LPUSHX key value 將一個或多個值插入到已存在的列表頭部
LRANGE key start stop 獲取列表指定範圍內的元素
LREM key count value  移除列表元素
LSET key index value 經過索引設置列表元素的值
LTRIM key start stop 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間以內的元素都將被刪除。
RPOP key 
移除並獲取列表最後一個元素
RPOPLPUSH source destination 移除列表的最後一個元素,並將該元素添加到另外一個列表並返回
RPUSH key value1 [value2] 在列表中添加一個或多個值
RPUSHX key value 爲已存在的列表添加值,若是列表不存在,則無效

六. redis集合(SET)

redis集合是string 類型的無序集合,集合的成員是惟一的。數據庫

127.0.0.1:6379> SADD orange redis
(integer) 1
127.0.0.1:6379> SADD orange mongdb
(integer) 1
127.0.0.1:6379> SADD orange mysql
(integer) 1
127.0.0.1:6379> SADD orange mysql
(integer) 0
127.0.0.1:6379> SMEMBERS orange
1) "mysql"
2) "mongdb"
3) "redis"
SADD key member1 [member2] 向集合添加一個或多個成員
SCARD key  獲取集合的成員數
 SDIFF key1 [key2] 返回給定全部集合的差集
SDIFFSTORE destination key1 [key2]  返回給定全部集合的差集並存儲在 destination 中
 SINTER key1 [key2]  返回給定全部集合的交集
SINTERSTORE destination key1 [key2] 返回給定全部集合的交集並存儲在 destination 中
SISMEMBER key member  判斷 member 元素是不是集合 key 的成員
SMEMBERS key 返回集合中的全部成員
SMOVE source destination member 將 member 元素從 source 集合移動到 destination 集合
SPOP key 移除並返回集合中的一個隨機元素
SRANDMEMBER key [count] 返回集合中一個或多個隨機數
SREM key member1 [member2] 移除集合中一個或多個成員
SUNION key1 [key2]  返回全部給定集合的並集
SUNIONSTORE destination key1 [key2] 全部給定集合的並集存儲在 destination 集合中
SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素

七. 有序集合(sorted set)

redis有序集合和集合同樣都是string類型的元素的集合,並且是惟一的。 
不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。 
有序集合的成員是惟一的,可是分數(score)倒是能夠重複的。api

127.0.0.1:6379> ZADD banana 1 www.1.com
(integer) 1
127.0.0.1:6379> ZADD banana 2 www.2.com
(integer) 1
127.0.0.1:6379> ZADD banana 3 www.3.com
(integer) 1
127.0.0.1:6379> ZADD banana 4 www.4.com
(integer) 1
127.0.0.1:6379> ZRANGE banana 0 10 
1) "www.1.com"
2) "www.2.com"
3) "www.3.com"
4) "www.4.com"
127.0.0.1:6379> ZRANGE banana 0 10 WITHSCORES
1) "www.1.com"
2) "1"
3) "www.2.com"
4) "2"
5) "www.3.com"
6) "3"
7) "www.4.com"
8) "4"
ZADD key score1 member1 [score2 member2]  向有序集合添加一個或多個成員,或者更新已存在成員的分數
ZCARD key 獲取有序集合的成員數
 ZCOUNT key min max  計算在有序集合中指定區間分數的成員數
ZINCRBY key increment member 有序集合中對指定成員的分數加上增量 increment
 ZINTERSTORE destination numkeys key [key ...]   ZINTERSTORE destination numkeys key [key ...] 
ZLEXCOUNT key min max  在有序集合中計算指定字典區間內成員數量
ZRANGE key start stop [WITHSCORES] 經過索引區間返回有序集合成指定區間內的成員
ZRANGEBYLEX key min max [LIMIT offset count] 經過字典區間返回有序集合的成員
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 經過分數返回有序集合指定區間內的成員
ZRANK key member 返回有序集合中指定成員的索引
 ZREM key member [member ...]  移除有序集合中的一個或多個成員
ZREMRANGEBYLEX key min max 移除有序集合中給定的字典區間的全部成員
ZREVRANGE key start stop [WITHSCORES]  返回有序集中指定區間內的成員,經過索引,分數從高到底
ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分數區間內的成員,分數從高到低排序
ZREVRANK key member
返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序
ZSCORE key member  返回有序集中,成員的分數值
 ZUNIONSTORE destination numkeys key [key ...]  計算給定的一個或多個有序集的並集,並存儲在新的 key 中
ZSCAN key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素(包括元素成員和元素分值)

八.redis服務器命令

redis服務器命令主要是用來方便管理redis服務的。 
查看服務器的統計信息:數組

127.0.0.1:6379[3]> INFO
# Server
redis_version:3.2.12
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:b5c6743954c293cb
redis_mode:standalone
os:Linux 3.10.0-862.3.3.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.5
process_id:32006
run_id:723bc0551e3e48f19efb6f66675907eba555ebac
tcp_port:6379
uptime_in_seconds:14102
uptime_in_days:0
hz:10
lru_clock:5009302
executable:/root/redis-server
config_file:/usr/local/redis/redis.conf

獲取redis的全部配置:服務器

127.0.0.1:6379[3]> CONFIG GET *
  1) "dbfilename"
  2) "dump.rdb"
  3) "requirepass"
  4) ""
  5) "masterauth"
  6) ""
  7) "unixsocket"
  8) ""
  9) "logfile"
 10) ""
 11) "pidfile"
 12) "/var/run/redis_6379.pid"
 13) "slave-announce-ip"
 14) ""
 15) "maxmemory"
 16) "0"
 17) "maxmemory-samples"
 18) "5"
 19) "timeout"
 20) "300"
 21) "auto-aof-rewrite-percentage"

編輯配置文件:

127.0.0.1:6379[3]> CONFIG SET loglevel "notice"
OK
127.0.0.1:6379[3]> CONFIG GET loglevel
1) "loglevel"
2) "notice"
BGREWRITEAOF 異步執行一個 AOF(AppendOnly File) 文件重寫操做
BGSAVE 在後臺異步保存當前數據庫的數據到磁盤
CLIENT KILL [ip:port] [ID client-id] 關閉客戶端鏈接
CLIENT LIST 獲取鏈接到服務器的客戶端鏈接列表
CLIENT GETNAME  獲取鏈接的名稱
CLIENT PAUSE timeout  在指定時間內終止運行來自客戶端的命令
 CLIENT SETNAME connection-name  設置當前鏈接的名稱
 CLUSTER SLOTS 獲取集羣節點的映射數組
 COMMAND 獲取redis命令詳情數組
COMMAND COUNT 獲取redis命令總數
 COMMAND GETKEYS 獲取給定命令的全部鍵
 TIME 返回當前服務器時間
 COMMAND INFO command-name [command-name ...] 獲取指定 Redis 命令描述的數組
 CONFIG GET parameter 獲取指定配置參數的值
 CONFIG REWRITE 對啓動 Redis 服務器時所指定的 redis.conf 配置文件進行改寫
 CONFIG SET parameter value 修改 redis 配置參數,無需重啓
CONFIG RESETSTAT
重置 INFO 命令中的某些統計數據
 DBSIZE 返回當前數據庫的 key 的數量
 DEBUG OBJECT key 獲取 key 的調試信息
DEBUG SEGFAULT  讓 Redis 服務崩潰
 FLUSHALL  刪除全部數據庫的全部key
 FLUSHDB  刪除當前數據庫的全部key
 INFO [section]  獲取 Redis 服務器的各類信息和統計數值
 LASTSAVE 返回最近一次 Redis 成功將數據保存到磁盤上的時間,以 UNIX 時間戳格式表示
MONITOR 實時打印出 Redis 服務器接收到的命令,調試用
 ROLE 返回主從實例所屬的角色
 SAVE 異步保存數據到硬盤
SHUTDOWN [NOSAVE] [SAVE]  異步保存數據到硬盤,並關閉服務器
SLAVEOF host port  將當前服務器轉變爲指定服務器的從屬服務器(slave server)
SLOWLOG subcommand [argument] 管理 redis 的慢日誌
 SYNC 用於複製功能(replication)的內部命令
相關文章
相關標籤/搜索