啟動和連接
啟動命令
./redis-server.exe redis.windows.conf
連接本機(jī)的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的過期時(shí)間,單位為秒
# 語法
setex key seconds value
# 示例竟贯,設(shè)置name答捕,并在5秒后過期
setex name 5 zhangsan
只有在key不存在時(shí),才設(shè)置key-value
# 語法
setnx key value
# 示例
setnx age 25
刪除指定的key屑那,若有多個(gè)拱镐,則用空格隔開
# 語法
del key
# 示例
del name age
Hash哈希
- Hash類型,也叫散列持际,其value值是一個(gè)無序的字典沃琅,類似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
刪除哈希中的某個(gè)field
# 語法
hdel key field
# 示例
hdel user name
有序列表List
- 列表List,與Java中的LinkedList類似姥份,是一個(gè)雙向鏈表結(jié)構(gòu)郭脂,支持正向檢索,也支持反向檢索
- 特點(diǎn)
- 有序
- 元素可以重復(fù)
- 插入和刪除快
- 查詢速度一般
從左邊澈歉,將一個(gè)或多個(gè)值展鸡,插入到列表的頭部,多個(gè)值用空格隔開
# 語法
lpush key value1 value2
# 示例
lpush arrays zhangsan
查詢列表中指定范圍的元素
- 索引從
0
開始埃难,區(qū)間是包前又包后
-
start
是開始位置莹弊,stop
為結(jié)束位置,0
代表從第一個(gè)元素開始凯砍,-1
代表是元素的末尾
# 語法
lrange key start stop
# 示例
lrange arrays 0 -1
從右邊箱硕,將一個(gè)或多個(gè)值拴竹,插入到列表的尾部悟衩,多個(gè)值用空格隔開
# 語法
rpush keys value1 value2
# 示例
rpush arrays Barry Wally
獲取列表的長度
# 語法
llen key
# 示例
llen arrays
從左邊,刪除列表的元素栓拜,并獲取被刪除的元素
# 語法
lpop key
# 示例
lpop arrays
從右邊座泳,刪除列表元素惠昔,并獲取被刪除的元素
# 語法
rpop key
# 示例
rpop arrays
從右邊,刪除列表元素挑势,如果列表為空镇防,則阻塞列表到到達(dá)超時(shí)時(shí)間
# 語法
brpop key timeount
# 示例
brpop arrays 3
無序集合Set
- 集合Set,結(jié)構(gòu)和Java的HashSet類似
- 特點(diǎn)
- 無序
- 元素不可重復(fù)
- 查找快
- 支持交集潮饱、并集来氧、差集(集合之間,不同的元素)等功能
向Set中香拉,添加元素啦扬,多個(gè)元素用空格隔開
# 語法
sadd key member1 member2
# 示例
sadd set1 a b c d
獲取Set的所有元素
# 語法
smembers key
# 示例
smembers set1
獲取Set的長度
# 語法
scard key
# 示例
scard set1
獲取多個(gè)Set的交集(多個(gè)集合,都有的元素)
# 語法
sinter key1 key2
# 示例
sinter set1 set2
獲取多個(gè)Set的并集(多個(gè)集合凫碌,合并的元素)
sunion key1 key2
# 示例
sunion set1 set2
刪除Set中的一個(gè)或多個(gè)元素
srem key member1 member2
# 示例
srem set1 a b
有序集合SortedSet
- 集合SortedSet,可排序的Se盛险,也叫ZSet瞄摊,與Java的TreeSet類似,但底層數(shù)據(jù)結(jié)構(gòu)差別相當(dāng)大苦掘,每個(gè)元素都帶有一個(gè)score分值换帜,可以基于score進(jìn)行排序,底層是一個(gè)跳表(SkipList)+ 哈希表
- 特點(diǎn)
向ZSet中添加一個(gè)或多個(gè)元素
# 語法
zadd key score1 member1 score member2
# 示例
zadd zset1 50 zhangsan 10 lisi
查詢ZSet中的指定范圍的元素
- 索引從
0
開始鹤啡,區(qū)間是包前又包后
-
start
是開始位置膜赃,stop
為結(jié)束位置,0
代表從第一個(gè)元素開始揉忘,-1
代表是元素的末尾
- 默認(rèn)升序排序跳座,也就是從低到高
# 語法
zrange key start stop
# 示例
zrange zset1 0 -1
增加ZSet中某個(gè)元素的分值
- incrementScore為增加的分值
- member為給誰增加分值
# 語法
zincrby key incrementScore member
# 示例
zincrby zset1 10 lisi
刪除ZSet中的某個(gè)元素
# 語法
zrem key member
# 示例
zrem zset1 wangwu
通用命令
- 不分?jǐn)?shù)據(jù)類型,所有數(shù)據(jù)類型都可以使用的命令
獲取所有符合給定模式的key(類似模糊查詢)
# 語法
keys pattern
# 示例
# 查詢所有key
keys *
# 查詢指定開頭的key
keys s*
# 查詢以1結(jié)尾的key
keys *1
判斷某個(gè)key是否存在
# 語法
exists key
# 示例
exists zset1
獲取指定key的數(shù)據(jù)類型
# 語法
type key
# 示例
type zset1
刪除某個(gè)key
# 語法
del key
# 示例
del user