啟動和連接
啟動命令
./redis-server.exe redis.windows.conf
連接本機的redis
redis-cli
連接指定的ip、端口的redis,-h是ip地址,-p是端口號
redis-cli -h 192.168.200.146 -p 6379
如果redis配置文件中,設(shè)置了密碼,如123456,則添加-a參數(shù)
redis-cli -h 192.168.200.146 -p 6379 -a 123456
退出redis-cli
exit
使用redis-cli,停止redis
redis-cli shutdown
操作命令
字符串
設(shè)置指定的key-value
# 語法
set key value
# 示例
set name zhangsan
獲取指定的key
# 語法
get key
# 示例
get name
設(shè)置指定的key-value,并設(shè)置key的過期時間,單位為秒
# 語法
setex key seconds value
# 示例,設(shè)置name,并在5秒后過期
setex name 5 zhangsan
只有在key不存在時,才設(shè)置key-value
# 語法
setnx key value
# 示例
setnx age 25
刪除指定的key,若有多個,則用空格隔開
# 語法
del key
# 示例
del name age
Hash哈希
- Hash類型,也叫散列,其value值是一個無序的字典,類似Java中的HashMap
- key是字符串,value值由field和小value組成,簡稱key為大key,field為小key
設(shè)置哈希中的field和value
# 語法
hset key field value
# 示例
hset user name zhangsan
hset user age 18
獲取哈希中指定field的value值
# 語法
hget key field
# 示例
hget user name
hget user age
獲取哈希中指定field中的所有key值
# 語法
hkeys key
# 示例
hkeys user
獲取哈希中指定field中的所有value值
# 語法
hvals key
# 示例
hvals user
刪除哈希中的某個field
# 語法
hdel key field
# 示例
hdel user name
有序列表List
- 列表List,與Java中的LinkedList類似,是一個雙向鏈表結(jié)構(gòu),支持正向檢索,也支持反向檢索
- 特點
從左邊,將一個或多個值,插入到列表的頭部,多個值用空格隔開
# 語法
lpush key value1 value2
# 示例
lpush arrays zhangsan
查詢列表中指定范圍的元素
- 索引從
0開始,區(qū)間是包前又包后
-
start是開始位置,stop為結(jié)束位置,0代表從第一個元素開始,-1代表是元素的末尾
# 語法
lrange key start stop
# 示例
lrange arrays 0 -1
從右邊,將一個或多個值,插入到列表的尾部,多個值用空格隔開
# 語法
rpush keys value1 value2
# 示例
rpush arrays Barry Wally
獲取列表的長度
# 語法
llen key
# 示例
llen arrays
從左邊,刪除列表的元素,并獲取被刪除的元素
# 語法
lpop key
# 示例
lpop arrays
從右邊,刪除列表元素,并獲取被刪除的元素
# 語法
rpop key
# 示例
rpop arrays
從右邊,刪除列表元素,如果列表為空,則阻塞列表到到達超時時間
# 語法
brpop key timeount
# 示例
brpop arrays 3
無序集合Set
- 集合Set,結(jié)構(gòu)和Java的HashSet類似
- 特點
- 無序
- 元素不可重復
- 查找快
- 支持交集、并集、差集(集合之間,不同的元素)等功能
向Set中,添加元素,多個元素用空格隔開
# 語法
sadd key member1 member2
# 示例
sadd set1 a b c d
獲取Set的所有元素
# 語法
smembers key
# 示例
smembers set1
獲取Set的長度
# 語法
scard key
# 示例
scard set1
獲取多個Set的交集(多個集合,都有的元素)
# 語法
sinter key1 key2
# 示例
sinter set1 set2
獲取多個Set的并集(多個集合,合并的元素)
sunion key1 key2
# 示例
sunion set1 set2
刪除Set中的一個或多個元素
srem key member1 member2
# 示例
srem set1 a b
有序集合SortedSet
- 集合SortedSet,可排序的Se,也叫ZSet,與Java的TreeSet類似,但底層數(shù)據(jù)結(jié)構(gòu)差別相當大,每個元素都帶有一個score分值,可以基于score進行排序,底層是一個跳表(SkipList)+ 哈希表
- 特點
向ZSet中添加一個或多個元素
# 語法
zadd key score1 member1 score member2
# 示例
zadd zset1 50 zhangsan 10 lisi
查詢ZSet中的指定范圍的元素
- 索引從
0開始,區(qū)間是包前又包后
-
start是開始位置,stop為結(jié)束位置,0代表從第一個元素開始,-1代表是元素的末尾
- 默認升序排序,也就是從低到高
# 語法
zrange key start stop
# 示例
zrange zset1 0 -1
增加ZSet中某個元素的分值
- incrementScore為增加的分值
- member為給誰增加分值
# 語法
zincrby key incrementScore member
# 示例
zincrby zset1 10 lisi
刪除ZSet中的某個元素
# 語法
zrem key member
# 示例
zrem zset1 wangwu
通用命令
- 不分數(shù)據(jù)類型,所有數(shù)據(jù)類型都可以使用的命令
獲取所有符合給定模式的key(類似模糊查詢)
# 語法
keys pattern
# 示例
# 查詢所有key
keys *
# 查詢指定開頭的key
keys s*
# 查詢以1結(jié)尾的key
keys *1
判斷某個key是否存在
# 語法
exists key
# 示例
exists zset1
獲取指定key的數(shù)據(jù)類型
# 語法
type key
# 示例
type zset1
刪除某個key
# 語法
del key
# 示例
del user