redis从入门到入土之常用命令

本文主要介绍redis常用命令

Redis(REmote DIctionary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库。

string类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

set key value // 设置key,value数据
get key // 根据key查询对应的value,如果不存在,返回空(nil)
del key // 删除数据
mset key1 value1 key2 value2 … // 添加/修改多个数据
mget key1 key2 … // 获取多个数据
strlen key // 获取数据字符个数(字符串长度)
append key value // 追加信息到原始信息后部(如果原始信息存在就追加,否则新建)
incr key // 设置数值数据增加1
incrby key increment // 设置数值数据增加指定范围的整数
incrbyfloat key increment // 设置数值数据增加指定范围的浮点数
decr key // 设置数值数据减少1
decrby key increment / 设置数值数据减少指定范围的整数
setex key seconds value // 设置数据具有指定的生命周期(秒)
psetex key milliseconds value // 设置数据具有指定的生命周期(毫秒)

hash类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14

hset key field value // 添加/修改指定数据
hget key field // 获取数据
hgetall key // 获取数据中的所有值
hdel key field1 [field2] // 删除数据
hmset key field1 value1 field2 value2 … // 添加/修改多个数据
hmget key field1 field2 … // 获取多个数据
hlen key // 获取哈希表中字段的数量
hexists key field // 获取哈希表中是否存在指定的字段
hkeys key // 获取哈希表中所有的字段名
hvals key // 获取哈希表中所有的字段值
hincrby key field increment // 设置指定字段的数值数据增加指定范围的整数
hincrbyfloat key field increment //设置指定字段的数值数据增加指定范围的浮点数
hsetnx key field value // 为哈希表中不存在的的字段赋值,有则取消

list类型

1
2
3
4
5
6
7
8
9
10
11
12

lpush key value1 [value2] …… // 添加/修改数据(从左往右)
rpush key value1 [value2] …… // 添加/修改数据(从右往左)
lrange key start stop // 获取列表中指定区间内的元素
lindex key index // 获取列表中指定位置的元素
llen key // 获取列表的长度
lpop key // 获取并移除列表最左侧的数据
rpop key // 获取并移除列表最右侧的数据
blpop key1 [key2] timeout // 规定时间内获取并移除数据(从左往右)
brpop key1 [key2] timeout // 规定时间内获取并移除数据(从右往左)
brpoplpush source destination timeout // 规定时间内从列表中取出最右侧的元素,并插入到另外一个列表的最左侧
lrem key count value // 移除列表中count绝对值个与value相等的元素(count>0:从左向右搜索,count<0:从右向左搜索,count=0:移除表中所有与value相等的值)

set类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

sadd key member1 [member2] // 添加数据
smembers key // 获取全部数据
srem key member1 [member2] // 删除数据
scard key // 获取集合数据总量
sismember key member // 判断集合中是否包含指定数据
srandmember key [count] // 随机获取集合中指定数量的数据
spop key [count] // 随机获取集合中的指定数量数据并将该数据移出集合
sinter key1 [key2] // 求两个集合的交集
sunion key1 [key2] // 求两个集合的并集
sdiff key1 [key2] // 求两个集合的差集
sinterstore destination key1 [key2] // 求两个集合的交集并存储到指定集合中
sunionstore destination key1 [key2] // 求两个集合的并集并存储到指定集合中
sdiffstore destination key1 [key2] // 求两个集合的差集并存储到指定集合中
smove source destination member // 将指定数据从原始集合中移动到目标集合中

sorted_set类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

zadd key score1 member1 [score2 member2] // 添加指定权重的数据
zrange key start stop [WITHSCORES] // 获取指定范围的全部数据
zrevrange key start stop [WITHSCORES] // 获取指定范围的全部数据(倒序)
zrem key member [member ...] // 删除数据
zrangebyscore key min max [WITHSCORES] [LIMIT] // 按条件获取数据
zrevrangebyscore key max min [WITHSCORES] // 按条件获取数据(倒序)
zremrangebyrank key start stop // 按条件删除指定范围的数据
zremrangebyscore key min max // 按条件删除指定范围的数据
zcard key // 获取集合数据总量
zcount key min max // 获取集合指定范围内的数据总量
zinterstore destination numkeys key [key ...] // 获取集合交集并存储到指定集合中
zunionstore destination numkeys key [key ...] // 获取集合并集并存储到指定集合中
zrank key member // 获取数据对应的索引(排名)
zrevrank key member // 获取数据对应的索引(排名)(倒序)
zscore key member // score值获取与修改
zincrby key increment member // score值获取与修改(倒序)

Bitmaps类型

1
2
3
4
5
6
7
8

getbit key offset // 获取指定key对应偏移量上的bit值
setbit key offset value // 设置指定key对应偏移量上的bit值,value只能是1或0
bitop and destKey key1 [key2...] // 对指定key按位进行交操作,并将结果保存到destKey中
bitop or destKey key1 [key2...] // 对指定key按位进行并操作,并将结果保存到destKey中
bitop not destKey key1 [key2...] // 对指定key按位进行非操作,并将结果保存到destKey中
bitop xor destKey key1 [key2...] // 对指定key按位进行异或操作,并将结果保存到destKey中
bitcount key [start end] // 统计指定key中1的数量

HyperLogLog类型

1
2
3
4

pfadd key element [element ...] // 添加数据
pfcount key [key ...] // 统计数据
pfmerge destkey sourcekey [sourcekey...] // 合并数据到指定key

GEO类型

1
2
3
4
5
6
7

geoadd key longitude latitude member [longitude latitude member ...] // 添加坐标点
geopos key member [member ...] // 获取坐标点
geodist key member1 member2 [unit] // 计算坐标点距离
georadius key longitude latitude radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count] // 查询给定经纬度坐标点指定半径的坐标点
georadiusbymember key member radius m|km|ft|mi [withcoord] [withdist] [withhash] [count count] // 查询给定坐标点指定半径的坐标点
geohash key member [member ...] // 计算经纬度

key操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

del key // 删除指定key
exists key // 获取key是否存在
type key // 获取key的类型
expire key seconds // 为指定key设置有效期(秒)
pexpire key milliseconds // 为指定key设置有效期(毫秒)
expireat key timestamp // 为指定key设置有效期(秒时间戳)
pexpireat key milliseconds-timestamp // 为指定key设置有效期(毫秒时间戳)
ttl key // 获取key的有效时间(秒)
pttl key // 获取key的有效时间(毫秒)
persist key // 切换key从时效性转换为永久性
keys pattern 根据规则查询key(*匹配任意数量的任意符号,?配合一个任意符号,[]匹配一个指定符号)
rename key newkey // 为key改名
renamenx key newkey // 当key不存在时为key改名
sort // 对所有key排序

db操作

1
2
3
4
5
6
7
8
9

select index // 切换数据库
quit // 退出数据库
ping // 检查数据库联通性(返回pong)
echo message // 打印指定信息
move key db // 移动指定数据到指定db
dbsize // 查询当前db的数据条数
flushdb // 清除当前db
flushall // 清除所有db
扫一扫,请老师喝水