00:00
各位同学大家好,这讲将为大家介绍red key相关的常用操作命令,我们大家都知道red是一个K建支队,对吧?那么最经典的K大家看现在是hello,那么对于这个K我们有哪些操作命令呢?走起来,首先常用的这给大家呢做了一个整理和介绍,有兴趣你来查阳哥的脑图,如果在这个上面查不到的,再去官网去查,100%有,那常用的有哪一些,我们挨个挨个来给同学们过一下。首先,Key新,查看当前库所有的key,类似于我们数据库的select新from。DB或者是某张表。OK,没问题吧,那么所以说同学们请看我现在赛啊,K2V2SET k3V3没问题吧,那么应该是有几个,那么K星123过没问题,第二个判断某个K它是否存在。
01:01
Exist,那么大家请看,如果你在操作X客户端的时候啊,跟Linux一样,按一下table键,它有自动提示啊,那么我们来看看啊K1是否存在。如果返回一代表错,因为red底层是有一部分核心代码是用C写的,C语言里面是零代表false,一代表错,如果返回一就代表存在,那比如说我是K11,有没有没有,那么假设我是K1,有了K2有了K33有没有这个K?没有,那么所以说只有几个,只有两个这么说能跟上,OK,那么这个呢,就是来看它的判断。我们到底有没有,有几个就是有几个,OK,我们来同学们请看,没问题吧,好,那么这个呢,是我们的一个。判断key是否存在第三个type,那刚才我们学了十大数据类型啊,由于现在还没有讲后面的我们不便展开,但是呢,也可以给同学们演示一下啊,比如说type k1,它是个什么类型,它是个string类型,字符串类型,我们就知道这个K是什么,OK,好,那么再来啊,假设啊。
02:12
你先不要管现在我写的是个什么东东,那么同学们,这是个l push,这个命令我们后面会说啊,它是list,那么大家请看他是不是一口气,这个key是不是可以丢进去很多值啊,那么假设这个type,现在我说list,他告诉我什么类型,它是什么list类型,OK,这个type就是看到这个key所存储的数据类型分别是什么,好,下面。第四个就是我们的什么delete那。不用多解释吧,Delete k3直接删掉了,如果说delete k4我们根本就没有这个K,删不掉,返回零,OK,好,很简单,删除指定的key,下面叫按link key诶。那杨哥,好像这个K有点怪怪的,为什么你要用这个颜色来标注一下呢?埋下一个伏笔,抖一个包袱。后面我们在高阶片的时候会跟大家介绍red到底是单线程还是多线程,我们会用一些命令来说明和验证,那么在这请同学们不要管你,就把它当做一个delete命令先来学习,后面我有妙用,OK,先埋下一个伏笔,那么下面请看啊。
03:22
Link是叫非阻塞删除,仅仅是将kiss从kiss space元素集中删除,真正的删除会在后面的记步中进行,那说人话,它跟这个有什么区别呢?Delete他是个原子操作命令,它是阻塞的,比如说我这个啊,是个big k很大。对吧,假设很崩溃,它是个500兆的,那么可能我这迪delete塔山布干净的时候,这个迪delete塔它不会返回,它就会一直在这阻塞,那么这个时候其他在高并发的程序下,你这一块delete把我的给堵了,后面是不是就产生阻塞队列了,系统性能急剧下降,所以有些时候我们呢,折中一点,UN link,比如说P2,大家请看有没有删掉,删掉了这个时候它就不会阻塞,这是一个比delete更方便的命令,那么后面我们讲red是单线程还是多线程的时候,再给大家详细展开,你现在记着delete塔是原子的。
04:19
UN link,它是非阻塞删除啊,他们两个是近亲的关系,好,那么聊一嘴,接下来TTL,那么就是什么TT的意思是time to leave。意思查看还有多少秒这个K就过期,那么来同学们假设啊,Set k1V1,我重新再设置一次来TTLK1啥情况?负一负一代表什么意思啊?负一代表意思是永不过期,负二代表已经超时过期。那么这个命令要和下面这个pire这个呢联合起来学习,默认你没有指定这个K的超时时间都是代表永不过期,明白吗?也就是返回值TTL就是负一,那么下面啊,SK1V1TTLK1即负一永不过期。如果我用expi设置过期时间K1,假设五秒钟,TTLK1,同学们请看是不是还剩三秒,那么再来一次,还剩一秒再来一次K1什么鬼?负二,负二什么意思啊,已经。
05:28
超时过期,因为我们人工设置的,刚才是不是五秒钟,OK,好,这是我们的。时间过期的讲解,那么接下来这三个也是一组啊,Move select和DB move key DB index。数据库的索引零到15是他的意思是将当前数据库中的key移动到指定的数据库,啥意思呢?杨哥听着有点懵逼。那么听着里面。一个服务器默认带着。
06:00
16个数据库明白吗?默认使用的是零号库,那么16个按照下标从零开始,是不是零到15明白那么好,接下来那杨哥我怎么知道我现在在哪个库呢?如果在这默认就是在。第一个括,零号括,那么我想切换一下呢,那么下面就是我们数据库的切换,Select DB index,好,切换数据库零到15默认在哪?默认在零,好,同学们请看啊,我现在。两个命令一块讲,SK1V1KISS。心,大家请看现在是不是有两个K,一个是K1,一个是list,现在你给我把movie movie k哪个list移到哪个库,移到三号库,OK,相当于说剪切。大家请看,现在就说明什么,我在零号库,这已经没有这个list,这个list从我的零号库移到哪儿了?移到三号库,那杨哥我想去三号库上查查,切换下边SELECT3,大家看。
07:12
这是不是有一个下标是三没问题吧,那么这个时候同学们请看我kiss心在三号库上面有没有这个list,有,OK,所以说这个就是什么数据库key的迁移,一般我们都是访问一个red服务器,直接访问它的零号库,但是它其实后面是带着16个数据库,默认我们都是用零号库,那么从有些数据的就有点类似于哈red版的最简单的分库分表一样,那么假设啊,有些数据我就把它弄到了三号库,这个也是可以的,OK,好,那么给我切回来。零没问题吧,好,那么接下来。同学们请看这个屁股后面如果没有数,那个数字也是了,就代表在零号库,那杨哥你说是16号,16个库怎么证明,大家请看select。
08:01
15、可不可以?16、什么鬼?是不是错误的?数据库的下标已经out of range超出了范围,好,这是从命令,第二个从我们的什么配置文件,那么在当前路径下面,弟兄们晓得,我这是有个RED7点,看是我从官网上拷贝过来的,从上面的安键安装,我们只改了一些什么后台的一些动通,其他没有动过,那么不妨我们来看一下啊,Vim red7点。com,那么来set。行号弄出来date base数,人家说的很清楚,在379行啊,设置这个数据库的下标数字,那么默认是什么库,零号库,他告诉你database s负数,默认带几个库,带16个,那么如果你要这没有指定默认就是用零号库指定了,那么只能告诉你你要这比如说写个七,那么我们就是去七号库,就这个意思,你看它会告诉你用s select d bid干嘛?可以设置数据库的下标数字是在零到。
09:05
是不是16减一就零到15之间,OK,好,那么这个就给各位同学们呢。解释介绍一下来。接下来。Key到不同库的迁移,选择不同库相关的迁移就给大家介绍到这,那么接下来就可以叫DB size flash DB和flash。那么大家请看啊,查看当前数据库key的数量相当于select count新好,那么同学们啊,或者select更准确,应该叫select count什么ID?只不过这个ID现在是不是换成这个T了?好,很简单啊,那么同学们回到我们这来吧,我们回到我们的零号库么?SK2 V2,那么现在K,大家请看几个k DB size来几个说明在当前库下面我们有几个K只有两个,所以给你返回了两个,OK,没问题吧?那么接下来请看这个叫什么flash DB flash过,注意这两个命令极其危险,相当凶残,类似于Linux的RM杠,RF全盘清空,那么来flash递变叫清空什么当前库,Flash沃叫什么通杀全部16个库这个命令。
10:18
干嘛,你要是执行呢。说吧,是你自己走还是让项目经理走,兄弟写代码吗?坐牢的那种能跟上好,那么同学们来看一下啊,我现在在零号库是两个key,那么flash好来,这个是卧啊,这个是DB,没问题吧,那么kiss清干净了,那么假设我们切换到我们刚才的三号库,大家还清楚我们是不是有个list,好吧,我们呢,直接呢,干脆啊,我们再切回到零号库,那么现在我执行一个flash wall,再切回到我们的三号库,那么同学们请看一下什么情况是不是?把三号库的在零号库上执行flash,我把我的兄弟部队也全部清干净了,那么这个你放心,如果你们公司的Linux运维的话,一般是不会给你具备这样的管理员权限的,好吧,Flash你应该在生产上是执行不了的好不好?那么所以说同学们,这个就是我们对red key相关的常用的操作的命令介绍。
我来说两句