1、数据类型命令
1.命令不区分大小写,而key是区分大小写的
2.永远的帮助命令,help @类型
help @string
help @list
help @hash
help @hyperloglog
2、字符串(String)
单值单value
案例:
1.最常用:set key value | get key
返回值:
设置成功则返回OK,返回nil为未执行Set命令,如不满足NX,XX条件等。
若使用GET参数,则返回该键原来的值,或在键不存在时nil。
如何获得设置指定的key过期的Unix时间,单位为秒
System.out.println(Long.toString(System.currentTimeMillis()/1000L));
2.同时设置/获取多个键值
MSET key value [key value...]
MGET key [key ...]
mset/mget/msetnx
3.获取指定区间范围内的值
getrange/setrange
4.数值增减
一定要是数据才能进行加减
递增数字:INCR key
增加指定的整数:INCRBY key increment
递减数值:DECR key
减少指定的整数:DECRBY key decrement
5.获取字符串长度和内容追加
获取字符串长度:strlen key
字符串内容追加:append key value
6.分布式锁
setnx key value
setex(set with expire)键秒值/setnx(set if not exist)
7.getset(先get再set)
getset:将给定key的值设为value,并返回key的旧值(old value)。
简单一句话:先get然后立即set
3、列表(List)
单key多value
简单说明:一个双端链表的结构,容量是2的32次方减1个元素大概40多亿,主要功能有push/pop等,一般用在栈、队列、消息队列等场景。left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了
它的底层实际上就是个双向链表,对两端的作性能很高,通过索引下标的操作中间的节点性能会较差
案例:
1.lpush/rpush/lrange 注:没有rrange
2.lpop/rpop
3.lindex,按照索引下标获得元素(从上到下)
4.llen,获取List列表中元素的个数
5.lrem key 数字N 给定值v1
解释:删除N个值等于v1的元素
从left往right删除2个值等于v1的元素,返回的值为实际删除的数量
LREM list3 0 值,表示删除全部给定的值,零个就是全部值
6.ltrim key 开始index 结束index
截取指定范围的值后在赋值给key
7.rpoplpush 源列表 目的列表
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
8.lset key index value
让指定数组集合的小标位置值替换成新值
9.linsert key before/after 已有值 插入的新值
4、哈希(Hash)
KV模式不变,但V是一个键值对 Map<String, Map<Object, Object>>
案例:
1.hset/hget/hmset/hmget/hgetall/hdel
2.hlen
获取某个key内的全部数量
3.hexists key 在key里面的某个值的key
4.hkeys/hvals
hkeys key 查询出所有key对应的子key值
hvals key 查询出所有key对应的子key的value值
5.hincrby/hincrbyfloat
6.hsetnx
不存在赋值,存在了无效
5、集合(Set)
单值多value,且无重复
案例:
1.SADD key member [member ...]
添加元素,可以多次向同一个key中设置不同值,不会覆盖之前的值
2.SMEMBERS key
遍历集合中的所有元素
3.SISMEMBER key member
判断元素是否在集合中
4.SREM key member [member ...]
删除元素
5.scard
获取集合里面的元素个数
6.SRANDMEMBER key [数字]
从集合中随机展现设置的数字个数展现设置的数字个数元素,元素不删除
7.SPOP key [数字]
从集合中随机弹出弹出一个元素,出一个删除一个
8. smove key1 key2
将key1里已存在的某个值赋给key2
9.集合运算-集合的差集运算A-B
属于A但是不属于B的元素构成的集合
SDIFF key [key ...],可以计算多个元素的差集
10.集合运算-集合的并集运算A∪B
属于A或者属于B的元素构成的集合
SUNION key [key ...]
11.集合运算-集合的交集运算A∩B
属于A同时也属于B的共同拥有的元素构成的集合
SINTER key [key ...]
SINTERCARD numkeys key 【key ...】【LIMIT limit】
numkeys 的具体值由输入的key个数决定
SINTERCARD 为redis7新命令,它不返回结果集,而是返回结果的基数。返回由所有给定集合的交集产生的集合的基数
基数的词语解释: 用于表示事物个数的数
![](images/50.set-sintercard limit.png)
6、有序集合Zset(sorted set)
在set基础上,每个val值前加一个score分数值。之前set是k1 v1 v2 v3,现在zset是 k1 score1 v1 score2 v2
案例:
向有序集合中加入一个元素和该元素的分数
1.ZADD key score member [score member ...]
添加元素
2.ZRANGE key start stop [WITHSCORES]
按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素
3.zrevrange key start stop [WITHSCORES]
反转集合,按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素
4.ZRANGEBYSCORE key min max 【WITHSCORES】【LIMIT offset count】
获取指定分数范围的元素,可以在min和max前面加个(,表示不包含
limit作用是返回限制,limit开始下标步,一共多少步
5.ZSCORE key member
获取元素的分数
6.ZCARD key
获取集合中元素的数量
7. zrem key member [member ...]
某个score对应的value值,作用是删除元素
8.ZINCRBY key increment member
增加某个元素的分数
9.ZCOUNT key min max
获得指定分数内的元素个数
10.ZMPOP numkeys key [key ...] MIN|MAX [COUNT count]
从键名列表中的第一个非空排序集中弹出一个或多个元素,他们是成员分数对
11.zrank key member [withscore]
作用是通过子value获得下标值
12.zrevrank key member [withscore]
作用是通过子value逆序获得下标值
本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!
新手小白,欢迎留言指正!