字符串(String)数据类型
简介 字符串类型是最常用的数据类型。Redis中的所有键都是字符串。
字符串类型是最常用的数据类型。Redis中的所有键都是字符串。
相关命令
SET、GET、STRLEN、APPEND、SETRANGE、SETNX、MSET、MGET、OBJECT
操作
1、使用redis-cli连接到Redis
2、使用SET命令将一个字符串的值关联到一个键。
127.0.0.1:6379> SET "test-1" "Hello World!"
OK
3、使用GET命令获取字符串的值
127.0.0.1:6379> GET test-1
"Hello World!"
4、使用GET获取一个不存在的Key是,会返回(nil)
127.0.0.1:6379> GET test-2
(nil)
5、使用STRLEN命令返回键字符串对应值的长度
127.0.0.1:6379> STRLEN test-1
(integer) 12
6、使用STRLEN命令获取不存在的键对应值的长度的时候,返回0
127.0.0.1:6379> STRLEN test-2
(integer) 0
7、使用APPEND命令向一个键对应值的后面追加字符串
127.0.0.1:6379> APPEND test-1 " Hai"
(integer) 16
127.0.0.1:6379> GET test-1
"Hello World! Hai"
8、使用SETRANGE命令可以覆盖字符串值的一部分
127.0.0.1:6379> SETRANGE test-1 10 "X123456"
(integer) 17
127.0.0.1:6379> GET test-1
"Hello WorlX123456"
9、SET命令会覆盖键此前对应的值,有时候我们不希望覆盖,这时候可以使用EXIST命令来判断键是否存在。但是Redis给我们提供了SETNX命令,用于原子性的设置键的值,如果键已经存在,则返回0,表示不覆盖原来的值,不存在,则返回1。
127.0.0.1:6379> SETNX test-2 "ABC"
(integer) 1
127.0.0.1:6379> SETNX test-2 "ABC"
(integer) 0
#等价下面的格式
127.0.0.1:6379> SET test-3 "ABC" NX
OK
127.0.0.1:6379> SET test-3 "ABC" NX
(nil)
SET命令中的NX选项与SETNX一样。相反,SET命令的XX选项表示仅仅存在键才设置值。
127.0.0.1:6379> SET test-3 "ABC" XX
OK
127.0.0.1:6379> SET test-4 "ABC" XX
(nil)
10、使用MSET命令来一次性设置多个值
127.0.0.1:6379> MSET test-4 "DEF" test-5 "HHH"
OK
11、使用MGET命令一次性来获取多个值
127.0.0.1:6379> MGET test-4 test-5
1) "DEF"
2) "HHH"
Redis字符串内部是如何编码的?
Redis使用了三种不同的编码方式来存储字符串对象,并会根据每个字符串值自动决定所使用的编码方式:
- int:用于能够使用64位有符号整数表示的字符串
- embstr:用于长度小于或等于44字节的字符串,这种类型的编码在内存使用和性能方面更有效率
- raw:用于长度大于44字节的字符串
可以使用OBJECT命令来查看与键相关联的Redis值对象的内部编码方式:127.0.0.1:6379> SET key1 12345 OK 127.0.0.1:6379> OBJECT ENCODING key1 "int" 127.0.0.1:6379> 127.0.0.1:6379> SET key2 "abcdefg" OK 127.0.0.1:6379> OBJECT ENCODING key2 "embstr" 127.0.0.1:6379> 127.0.0.1:6379> SET key3 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" OK 127.0.0.1:6379> OBJECT ENCODING key3 "raw"
Golang如果直接使用Alpine基础镜像进行打包,在运行的时候会出现如下问题:standard_init_linux.go:211: exec user process caused "no such file or directory"
图像的腐蚀与膨胀互为逆向操作,通常用于处理二值图像(黑白图,以黑色为底面背景),因此需要先进行二值化处理,腐蚀和膨胀通俗的理解就是,在指定大小的卷积核内,如果该卷积核内全为黑色或全为白色,则该卷积核内像素值不变,但若是既有黑色又有白色,即在图像边缘处,那么膨胀操作则会将该卷积核内所有白色像素点都赋值变为黑色,以此将图像向内腐蚀掉一圈,而膨胀操作则相反,会将卷积核内的黑色像素点赋值成2白色,以此让图像膨胀一圈。
dmesg命令用于显示内核环形缓冲区的内容。在进行系统引导时,内核会将硬件和模块初始化相关的信息写到这个缓冲区中。内核环形缓冲区中的消息对于诊断系统问题非常有用。
如何通过查询语句来查询某个数据的排名,本文主要介绍MySql和MongoDB两种数据库的查询方式来进行排名。
最近做一个项目需要用到日历插件,在网上找了找,发现有一个日历插件特别好用,就把这个插件分享给大家,也是给自己做一个记录以便后期查阅。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。