可以看到,set 用于创建键值对,del、exists、type等命令行都可以正常操作
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> keys *
-
“k2”
-
“k1”
127.0.0.1:6379> unlink k2
(integer) 1
127.0.0.1:6379> keys *
- “k1”
127.0.0.1:6379> expire k1 5
(integer) 1
127.0.0.1:6379> ttl k1
(integer) -2
127.0.0.1:6379> keys *
(empty array)
unlink命令在查找时,会发现是删除了的,但真正的删除会在后续异步操作;expire命令是设置key的过期时间,ttl是查看是否过期;过期了,意味着键值对的删除
================================================================================
String是Redis最基本的类型,一个key对应一个value
String类型是二进制安全的。意味着Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M
-
set <key><value>
添加键值对 -
get <key>
查询对应键值对 -
append <key><value>
将给定的value追加到原值的末尾 -
strlen <key>
获得值的长度 -
setnx <key><value>
只有在 key 不存在时 ,设置 key 的值 -
incr <key>
将 key 中储存的数字值增1,只能对数字值操作,如果为空,新增值为1 -
decr <key>
将 key 中储存的数字值减1,只能对数字值操作,如果为空,新增值为-1 -
incrby / decrby <key><步长>
将 key 中储存的数字值增减。自定义步长。 -
mset <key1><value1><key2><value2> .....
同时设置一个或多个 key-value -
mget <key1><key2><key3> .....
同时获取一个或多个 value 原子性,有一个失败都失败 -
msetnx <key1><value1><key2><value2> .....
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在 -
getrange <key><起始位置><结束位置>
获得值的范围 -
setrange <key><起始位置><value>
用 value 覆写key所储存的字符串值,从<起始位置>开始(索引从0开始) -
setex <key><过期时间><value>
设置键值的同时,设置过期时间,单位秒 -
getset <key><value>
以新换旧,设置了新值同时获得旧值
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> get k1
“v1”
127.0.0.1:6379> append k1 “111”
(integer) 5
127.0.0.1:6379> get k1
“v1111”
127.0.0.1:6379> strlen k1
(integer) 5
127.0.0.1:6379> setnx k4 v4
(integer) 1
通过代码演示,可以了解到相应命令的用法
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> incr k1
(integer) 2
127.0.0.1:6379> get k1
“2”
127.0.0.1:6379> decr k1
(integer) 1
127.0.0.1:6379> get k1
“1”
127.0.0.1:6379> incrby k1 4
(integer) 5
127.0.0.1:6379> get k1
“5”
127.0.0.1:6379> decrby k1 4
(integer) 1
127.0.0.1:6379> get k1
“1”
上面代码研究的是自增自减相关的命令行,用起来还是很简单,很容易理解的
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
-
“v1”
-
“v2”
-
“v3”
127.0.0.1:6379> msetnx k4 v4 k5 v5
(integer) 1
127.0.0.1:6379> mget k4 k5
-
“v4”
-
“v5”
127.0.0.1:6379> getrange k1 0 2
“v1”
127.0.0.1:6379> setrange k1 0 v1111
(integer) 5
127.0.0.1:6379> get k1
“v1111”
127.0.0.1:6379> getset k1 v1
“v1111”
127.0.0.1:6379> get k1
“v1”
127.0.0.1:6379> setex k1 5 v111
OK
127.0.0.1:6379> get k1
“v111”
以上代码演示的是多个键值对的设置以及多个键值对的获取,也是很容易理解的
=============================================================================
Redis 列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)
-
lpush/rpush <key><value1><value2><value3> ....
从左边/右边插入一个或多个值。 -
lpop/rpop <key>
从左边/右边吐出一个值。值在键在,值光键亡。 -
rpoplpush <key1><key2>从<key1>
列表右边吐出一个值,插到key2列表左边。 -
lrange <key><start><stop>
按照索引下标获得元素(从左到右) -
lrange mylist 0 -1
0左边第一个,-1右边第一个,(0-1表示获取所有) -
lindex <key><index>
按照索引下标获得元素(从左到右) -
llen <key>
获得列表长度 -
linsert <key> before <value><newvalue>
在value的后面插入newvalue插入值 -
lrem <key><n><value>
从左边删除n个value(从左到右) -
lset<key><index><value>
将列表key下标为index的值替换成value
127.0.0.1:6379> lpush k1 v11 v12 v13
(integer) 3
127.0.0.1:6379> lrange k1 0 -1
-
“v13”
-
“v12”
-
“v11”
127.0.0.1:6379> lpop k1
“v13”
127.0.0.1:6379> lpop k1
“v12”
127.0.0.1:6379> lpop k1
“v11”
127.0.0.1:6379> lrange k1 0 -1
(empty array)
127.0.0.1:6379> lpush k2 v21 v22 v23
(integer) 3
其中lrange k1 0 -1
表示的是查看所有的key下的数据
127.0.0.1:6379> lpush k1 v11 v12 v13
(integer) 3
127.0.0.1:6379> rpoplpush k1 k2
“v11”
127.0.0.1:6379> lrange k2 0 -1
-
“v11”
-
“v23”
-
“v22”
-
“v21”
127.0.0.1:6379> lindex k2 0
“v11”
127.0.0.1:6379> llen k2
(integer) 4
可以通过下标获取key下的值,也可以通过llen
来获取key下的长度
127.0.0.1:6379> lindex k2 0
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-JTEoVE0W-1712594162507)]