Redis常见命令
(一)常见命令①
一、数据结构
二、通用命令
①KEYS查询语句
pattern代表模板,有点像匹配表达式(不是正则),是redis的一种内置表达式,可以在里面使用通配符
底层存在一种模糊查询机制,效率并不高。当redis的数据量达到一定规模时(数百万上千万甚至更多),使用这种模糊查询机制会给服务器带来巨大负担,搜索可能会花很长时间,又因为redis是单线程的,在搜索期间无法执行其他命令,等于整个redis服务被阻塞了,所以不建议在生产环境下使用keys来做查询
除非当前的redis是一个集群模式,有主有从,则可以在从节点上执行该命令
②DEL删除语句
中括号的意思是可以接受多个key
返回的integer值代表删除的key数量
③EXISTS判断存在语句
④EXPIRE设置有效期语句
⑤TTL查看剩余有效期语句
未设置有效期的key的剩余有效期为-1,意为永久有效
已被删除的key的剩余有效期为-2
三、String类型与key的格式
(1)String类型
String类型的三种格式:
String的常见命令:
①增查类命令(SET、GET、MSET、MGET)
②自增类命令(INCR、INCRBY、INCREBYFLOAT)
- INCR
- INCRBY
- INCREBYFLOAT
③复合类命令
- SETNX
set后面跟nx与setnx的效果是类似的 - SETEX
效果跟set后面跟ex类似
(2)Key
Key的层级格式:
用户也好商品也好,在项目中往往都是一个java类或者java对象,这样的对象可以通过序列化成json的风格(即string字符串的形式)存储为一个值
以冒号隔开始,key很自然地就把数据给分离了,形成层级结构
可以避免id相同时地冲突,让数据分离看起来比较优雅
四、Hash类型
(1)Hash类型介绍
①对象序列化为json字符串存储的弊端:
无论一个字符串中有几个字段,是无法单独对某个字段做修改的,要么把整个字符串覆盖,要么只能删掉重写。要想解决这个弊端可以使用到哈希结构
②哈希结构:
field也称哈希key,哈希结构可以把一个用户的不同属性拆开变成独立的字段值分别存储,实现每个字段的独立表示,也就不需要用json字符串来标识一个用户,同时如果想要修改某个字段时对于其他字段没有影响
③优点:更加灵活
(2)常见命令
①HSET
重写一遍代码即可实现对单个哈希值的修改
②HGET
③HMSET
④HMGET
⑤HGETALL
⑥HKEYS、HVALS
⑦HINCRBY
⑧HSETNX
(二)常见命令②
一、List类型
①LPUSH
不管推了几个元素,都是按照顺序先推1号,1此时在最左边又推2号,2就跑到1的左边去了
②RPUSH
③LPOP、RPOP
④LRANGE
⑤BLPOP
"B"意为Block,即阻塞
输入该命令后发现队列被阻塞,不再向下执行
此时在另外一个控制台中向链表内插入元素
此时左边拿到数据,即解开队列,还会告诉等待时间
二、Set类型
三、SortedSet类型
1.类型介绍
SortedSet与TreeSet虽然在功能上比较相似,都是可排序的,但是在底层数据结构上的差异比较大。因为TreeSet的底层是由红黑树进行实现并且需要自行定义排序方法,而SortedSet的底层排序是根据一个固定的score值来排序的
SkipList跳表用于实现排序功能,可以增加查询速度
2.常见命令
①
虽然插入的数据为乱序,但是集合会自动排序为升序
②