Redis常用命令总结
学习Redis的朋友们都知道,Redis常见的数据类型有5种,分别如下:
String(字符串)
①string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
②string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
③string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
Hash(哈希,类似于Java中的Map)
①Redis hash 是一个键值对集合。
②Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
List(链表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,
ZSet(有序集合)
①Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
②不同的是每个元素都会关联一个double类型的分数。
③redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
那么从哪里可以获得Redis的常用命令呢?
最好的资源,那一定是官网。但是如果你英语也像我一样很渣,那么推荐你去Redis常用命令速查
下面开始分类型介绍一些常用的命令:
(1)Redis的键
keys * //查询所有的键
exists key的名字 //判断某个key是否存在
move key db(你要移动的目标库) //将某个键值对移动到另外一个库,当前库则就不存在了
expire key 秒钟 //为key设置生命周期
ttl key //查看key的生命周期还剩多长时间 -1 为永久不过期 -2为已经过期
type key //查看该key为什么类型
(2)String (单值单value)
set key value
get key
del key
append key value //表示原来的key已经存在并且是字符串,将value追加到原来的字符串后面
strlen key //根据key查值的长度
incr/decr key 对必须是数字类型的键值对的值进行加1(联想点赞的功能)
incrby/decrby key N //设定对value加N
getrange key start end //获得指定区间范围的值 (0 -1) 表示全部
setrange key start 值 //设置指定区间范围的值为多少
setex key time value //设置值指定生命周期
setnx 不存在才设定
mset k1 v1 k2 v2 ....
mget k1 k2 ...
msetnx ...
getset //先get再set
(3)List(单值多value)
lpush/rpush key v1 v2 v3.... //从右边或左边增加元素创建并设定列表的值
lrange key start end //查看下标范围内的value
lpop/rpop //从右边或左边弹出一个元素
lindex //按照索引下标获得元素
llen //获得列表的长度
lrem key N value //删除列表中的N个value值
ltrem key start end //截取指定范围内的
rpoplpush 资源表 目标列表
lset key index value //设置某个坐标的值为多少
linsert key before/after v1 value //在v1前/后设置值
(3)Hash(KV模式)
hset key k v
hget key k
hmset key k1 v1 k2 v2 ....
hmget key k1 k2....
hgetall key
hdel key k
hexists key k //判断key中的某个k是否存在
hlen //包括键值对的个数
hkeys/hvals //得出所有的key 或value
hincrby /hincrbyfloat //对其增加整数或浮点数
hsetnx //若不存在则添加
(4)Set(集合)
单值多value
sadd k v1 v2 v3... //添加元素
smembers key //查看key里面的所有元素
sismember key v1/v2/v3 //判断某个值是否属于这个集合
scard key //求某个集合里的元素个数
srem key value //删除集合中的元素value
srandmember key N 从集合中随意取出N个元素
spop key 随机出栈
smove set1 set2 val 从set1将val移动到set2中
集合的 并 交 差:
sdiff set1 set2 差运算
sinter set1 set2 交运算
sunion set1 set2 并运算
(5)ZSet(有序集合)
set 在原有基础之上加上score这一参数。。。即为zset
zadd key score1 v1 score2 v2 ..... 添加元素
zrange key idx1 idx2 [withscores] 0 -1 表示列举所有
zrangebyscore key [(]score1 [(]score2 [withscores] [limit offset limit]
(1) ( 表示不包括起点值 (2)limit 表示可以分页展示
zrem key + 某个score下对应的值 注意结尾加的是score对应的v ,而不是score
zrank/zrevrank key val 正序或逆序获得值的下标
zrange/zrevrange key start end [withscores] 正序逆序输出数列
zrangebyscore/zrevrangebyscore key score1 score2 [withscores] 按score正序逆序输出数列
zcard key 获得集合元素个数
zcount key score1 score2 获得分数区间范围内的元素个数
zrank key val 获得value在区间内的位置
zscore key val 按照值查找对应的分数