启动和连接
启动命令
./redis-server.exe redis.windows.conf
连接本机的redis
redis-cli
连接指定的ip、端口的redis,-h是ip地址,-p是端口号
redis-cli -h 192.168.200.146 -p 6379
如果redis配置文件中,设置了密码,如123456,则添加-a参数
redis-cli -h 192.168.200.146 -p 6379 -a 123456
退出redis-cli
exit
使用redis-cli,停止redis
redis-cli shutdown
操作命令
字符串
设置指定的key-value
# 语法
set key value
# 示例
set name zhangsan
获取指定的key
# 语法
get key
# 示例
get name
设置指定的key-value,并设置key的过期时间,单位为秒
# 语法
setex key seconds value
# 示例,设置name,并在5秒后过期
setex name 5 zhangsan
只有在key不存在时,才设置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
设置哈希中的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类似,是一个双向链表结构,支持正向检索,也支持反向检索
- 特点
从左边,将一个或多个值,插入到列表的头部,多个值用空格隔开
# 语法
lpush key value1 value2
# 示例
lpush arrays zhangsan
查询列表中指定范围的元素
- 索引从
0
开始,区间是包前又包后
-
start
是开始位置,stop
为结束位置,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,结构和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类似,但底层数据结构差别相当大,每个元素都带有一个score分值,可以基于score进行排序,底层是一个跳表(SkipList)+ 哈希表
- 特点
向ZSet中添加一个或多个元素
# 语法
zadd key score1 member1 score member2
# 示例
zadd zset1 50 zhangsan 10 lisi
查询ZSet中的指定范围的元素
- 索引从
0
开始,区间是包前又包后
-
start
是开始位置,stop
为结束位置,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
通用命令
获取所有符合给定模式的key(类似模糊查询)
# 语法
keys pattern
# 示例
# 查询所有key
keys *
# 查询指定开头的key
keys s*
# 查询以1结尾的key
keys *1
判断某个key是否存在
# 语法
exists key
# 示例
exists zset1
获取指定key的数据类型
# 语法
type key
# 示例
type zset1
删除某个key
# 语法
del key
# 示例
del user