哈喽,大家好,我是小浪。那么上篇博客教会了大家如何在Linux上安装Redis,那么本篇博客就要正式开始学习Redis啦,跟着俺的随笔往下看~
1、启动Redis
那么如何启动Redis呢?最常用的是以下这个命令:
redis-cli
启动之后如下:
看到进入了127.0.0.1:6379那么表示我们的成功进入了Redis的客户端。
2、认识Redis的命令
Redis 的命令有上百个,如果纯靠死记硬背比较困难,但是如果理解 Redis 的⼀些机制,会发现这些命令有很强的通用性,Redis 有 5 种数据结构,但它们都是键值对种的值,对于键来说有⼀些通用的命令。
一、get和set
简单设置几个key和value作为演示:
注意,这里设置的key和value都是不需要添加括号的,如果非要强行添加上括号也不是不可以,还有就是Redis中的命令是不区分大小写的 ~
2、查看刚才设置的键值对
那如果查看不存在的键值对呢?比如我们这里查看key99
我们发现报了一个nil的错误,那么这个nil和我们学习过的null有什么区别呢?
一、概念不同
Nil:表示无值,任何变量在没有被赋值之前的值都为nil。
Null:是在计算中具有保留的值。
二、功能不同
Nil:用于区别其他任何值。
Null:用于指示指针不引用有效对象。
三、针对不同
Nil:针对对象,而空对象不是说不占用空间,相当于一个“洗白”,回到初始状态。
Null:针对指针,对对象指针和非对象指针都有效,Null不会占用空间。
二、通用命令keys
由于刚才也是提到,Redis支持很多种的数据结构,但是整体上来说,Redis 是键值对结构. key是固定的,字符串value 实际上会有多种类型~包括字符串,哈希表,列表,集合等等~
那么,全局命令的意思就是能够搭配任意一个数据结构可以使用的命令~
1、keys
keys的作用就是用来查询当前服务器上匹配的 key~ 即通过一些特殊符号(通配符)来描述 key 的模样,配上述模样的 key 就能被查出来. 这里我们需要认识一下pattern这个关键词,pattern的意思就是去描述另外的字符串的模样~
2、pattern支持的通配符
我这里首先创建几个键值对用来进行演示:
那么keys支持返回所有满足样式(pattern)的 key~
1、?匹配任意一个字符
2、* 匹配0个或者任意多个字符
3、[abcde]只能匹配a,b,c,d,e这几个字符,其他的不行
4、^a 排除a,除了a其他都能匹配到~
5、[a-e]匹配这个范围内的字符,包括边界
注意事项:keys命令的时间复杂度是O(N),所以大家如果在公司的话一定要小心谨慎,尤其是生产环境下是禁止使用 keys * 命令的(查询Redis中所有的key!),我们来操作一下keys *:
虽然只有我们刚才创建的几个键值对,我们要知道Redis经常用来当做缓存,替MySQL分担了很多的请求,万一Redis被某个keys *卡住了,其他查询操作就超时了,此时这些请求会直接查询数据库,MySQL来不及处理这些请求,可能就挂了,造成的后果非常严重~