目录
1.set和get
2.keys
3.exists
4.del
5.expire
6.ttl
7.type
我们都知道Redis存的内容都是键值对,key是String,value有很多类型,像string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合).....,这些结构是比较常见的,还有其他的类型,可以前往官方网站查看。
1.set O(1)和get O(1)
set指令就是新建一个键值对,要确定键和值的内容,如果键已经存在,也会覆盖先前的键和值的内容;
set key1 value1,就是新建一个键值对,键的内容是key1,值的内容是value1;
get 就是获取键对于的value的值,比如get key1 ,就会返回key1对应的值的内容value1;
2.keys O(N)
keys 是按照表达式去匹配符合表达式的所有的键,我会先创建几个键值对,作为演示,hallo-hallo、hbllo-hbllo、hcllo-hcllo、hdllo-hdllo、hello-hello,主要认识两个特殊的符号,* 表示可以代替很多个字符(包括0个),?是占位符,只能代替一个字符;
(这是一个危险指令,如果你有很多个键值对,建议不要使用)那我想要查找所有的键值对就可以用 keys *,输入这个指令就会返回所有的键值对的键,这个操作相当危险,如果你只有几个键值对,可以试一下,但是在工作中千万不要使用,是一个相当危险的操作,可能会使得redis服务器直接崩溃。
keys h?llo,?只会代替一个字符
keys h*llo,为了演示效果,我新增一个haaaaallo-haaaaallo;
keys h[ab]llo
keys h[^b]llo
keys h[a-d]llo
3.exists O(1)
单看exists就已经很清楚了,就是去判断键是否存在, exists hallo [hallo hbllo ...],可以一次性判断一个或者多个键是否存在,返回存在的键的个数;
4.del O(1)
del 就是删除指定键的键值对,可以一次性删除一个或者多个,返回删除成功的个数
一般你轻易删除redis中的键值对,如果只是作为缓存的数据,删除一个两个的影响不大,最多就是去数据库再查一次,但是如果redis是作为数据库在存数据的,那就删相当于是删除数据库的数据了;
5.expire O(1)
为键值对添加秒级的过期时间 expire key time,有效时间内就可以获取得到该键值对,一旦过期就获取不到了;
6.ttl O(1)
查看指定键的键值对的有效时间(秒级),有过期时间就返回具体的秒数,表示还有多少秒过期,没有过期时间就返回-1,键值对不存在就返回-2;
7.type O(1)
返回键值对的值的数据内容
这些指令并不需要刻意的背诵,只要多多练习,多打几遍,自然就记住了