Redis常用命令
1.Redis存储数据的结构
常用的5种数据结构
key-string:一个key对于一个值
key-hash:一个key对应一个Map
key-list:一个key对应一个列表
key-set:一个key对应一个集合
key-zset:一个key对应一个有序的集合
另外三种数据结构
HyperLogLog:计算近似值
GEO:地理位置
BIT:位图,一般存储的也是一个字符串,存储的是一个byte[]
五种常用的存储数据结构图
key-string:最常用,一般用于存储一个值
key-hash:存储一个对象数据
key-list:使用list结构实现栈和队列结构
key-set:交集,差集和并集的操作
key-zset:排行榜,积分存储等操作
2.string常用命令
文档:http://redisdoc.com/string/index.html#
#1、添加值
set key value
#2、取值
get key
#3、批量操作
mset key value [key value…]
mget key [key…]
#4、自增命令(自增1)
incr key
#5、自减命令(自减1)
decr key
#6、自增或自减指定数量
incrby key increment
decrby key increment
#7、设置值的同时设置生存时间(每次向redis中添加数据时,尽量都设置生存时间)
setex key second value
#8、设置值,如果当前key不存在的话(如果这个key存在,什么事都不做,如果这个key不存在,和set命令一样)
setnx key value
#9、在key对应的value后,追加内容
append key value
#10、查看value字符串的长度
strlen key
3.hash常用命令
#1、存储数据
hset key field value
#2、获取数据
hget key field
#3、批量操作
hmset key field value [field value …]
hmget key field [field …]
#4、自增(指定自增的值)
hincrby key field increment
#5、设置值(如果key-field不存在,那么就正常添加,如果存在,什么事都不做)
hsetnx key field value
#6、检查field是否存在
hexists key field
#7、删除key对应的某个或多个field
hdel key field [field…]
#8、获取当前hash结构中的全部field和value
hgetall key
#9、获取当前hash结构中的全部field
hkeys key
#10、获取当前hash结构中的全部value
hvals key
#11、获取当前hash结构中field的数量
hlen key
4.list常用命令
#1、存储数据(从左侧插入数据,从右侧插入数据)
lpush key value [value…]
rpush key value [value…]
#2、存储数据(如果key不存在,什么事都不做,如果key存在,但是不是list机构,什么都不做)
lpushx key value
rpushx key value
#3、修改数据(修改指定索引位置的值,如果index超出整个列表的长度会失败)
lset key index value
#4、弹栈方式获取数据(左侧/右侧弹出数据)
lpop key
rpop key
#5、获取指定索引范围的数据(start从0开始,stop输入-1,代表最后一个,-2代表倒数第二部)
lrange key start stop
#6、获取指定索引位置的数据
lindex key index
#7、获取整个列表的长度
llen key
#8、删除列表中的数据(他是删除当前列表中的count个value值,count>0从左侧向右侧删除,count<0从右侧向左侧删除),count=0,删除列表全部的value
lrem key count value
#9、保留列表中的数据(保留指定范围内的数据,超过整个索引范围被移除掉)
ltrim key start stop
#10、将一个列表中最后的一个数据,插入到另外一个列表的头部位置
rpoplpush list1 list2
5.set常用命令
#1、存储数据
sadd key member [member…]
#2、获取数据(获取全部数据)
smembers key
#3、随机获取一个数据(获取的同时移除数据,count默认为1,代表弹出数据的数量)
spop key [count]
#4、交集(取多个set集合交集)
sinter set1 set2…
#5、并集(获取全部集合中的数据)
sunion set1 set2…
#6、差集(获取多个集合中不一样的数据,使用第一个集合进行取进行比较)
sdiff set1 set2…
#7、删除数据
srem key member [member…]
#8、查看当前的set集合中是否包含这个值
sismember key member
6.zset常用命令
#1、添加数据(score必须是数值,member不允许重复)
zadd key score member [score member…]
#2、修改member的分数、(如果member是存在于key中的,正常增加分数,如果member不存在,这个命令相当于zadd)
zincrby key increment member
#3、查看指定的member的分数
zscore key member
#4、获取zset中数据的数量
zcard key
#5、根据score的范围查询member数量
zcount key min max
#6、删除zset中的成员
zrem key member [member…]
#7、根据分数从小到大排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数)
zrange key start stop [withscores]
#8、根据分数从大到小排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数)
zrevrenge key start stop [withscores]
#9、根据分数的范围获取member(withscores代表同时返回score,添加limit,就和MySQL中一样,如果不希望等于min或者max的值被查询出来,可以采用‘(分数’ 相当于<或者>,但不等于,是一个开区间,最大值和最小值使用+inf和-inf来标识)
zrangebyscore key min max [withsores] [limit offset count]
#10、根据分数的范围获取member(withscores代表同时返回score,添加limit,就和MySQL中一样)
zrevrangebyscore key max min [withsores] [limit offset count]
7.key常用命令
#1、查看Redis中的全部key(pattern:,xxx,*xxx)
keys pattern
#2、查看某一个key是否存在(1 - key存在,0 - key不存在)
exists key
#3、删除key
del key [key…]
#4、设置key的生存时间,单位为秒,单位为毫秒.
expire key second
pexpire key milliseconds
#5、设置key的生存时间,单位为秒,单位为毫秒,设置能活到什么时间点
expireat key timestamp
pexpireat key milliseconds
#6、查看key的剩余生存时间,单位为秒,单位为毫秒(-2 - 当前key不存在;-1 - 当前key没有设置生存时间;具体的生存时间)
ttl key
pttl key
#7、移除key的生存时间(1 - 移除成功,0 - key不存在生存时间,key不存在)
persist key
#8、选择操作的库
select 0~15
#9、移动key到另外一个库中
move key db
8.库的常用命令
#1、清空当前所在的数据库
flushdb
#2、清空全部数据库
flushall
#3、查看当前数据库中有多少个key
dbsize
#4、查看随后一次操作的时间
lastsave
#5、实时监控Redis服务接收到的命令
monitor