1.字符串对象
note1:encoding (str):是检查该字符串的编码类型
note2:
1.如果字符串对象保存的是一个字符串值,并且这个字符串值的长度 大于32字节,那么字符串对象将使用一个简单动态字符串(SDS)来保 存这个字符串值,并将对象的编码设置为raw
2.如果字符串对象保存的是一个字符串值,并且这个字符串值的长度 小于等于32字节,那么字符串对象将使用embstr编码的方式来保存这个 字符串值
3.如果一个字符串对象保存的是整数值,并且这个整数值可以用long 类型来表示,那么字符串对象会将整数值保存在字符串对象结构的ptr属 性里面(将void*转换成long),并将字符串对象的编码设置为int
note3:不同编码实质上是不同的数据结构
命令 | int编码的实现方法 | embstr编码实现方法 | raw编码实现方法 |
SET | 实现int编码保存值 | 使用embstr | 使用raw便码保存值 |
GET | 拷贝对象所保存的整数值,将这个拷贝转换成字符串值,然后向客户端返回这个字符串值 | 直接向客户端返回字符 | 直接向客户端返回字符 |
APPEND | 将对象转换成raw编码,然后按raw编码的方式执行 | 将对象转换成raw编码,然后按raw编码的方式执行 |
调用sdscatlen函数,将字符串追加现有的末尾 |
INCRBYFLOAT | 取出整数值并将其转换成long double类型的浮点数,对这个浮点数进行加法计算,然后将得出的浮点数结果保存 | 取出字符串值并尝试将其转换成1ong double类型的法计算,然后将得出的浮点数法计算,然后将得出的浮点数结果保存起来。如果字符串值不能被转换成浮点数,那么向客户端返回一个错误 | 取出字符串值并尝试将其转换成1ong double类型的法计算,然后将得出的浮点数法计算,然后将得出的浮点数结果保存起来。如果字符串值不能被转换成浮点数,那么向客户端返回一个错误 |
INCRBY | 对整数值进行加法计算 得到出计算结果作为整数被保存起来 | 不可执行 | 不可执行 |
DECRBY | 对整数值进行减法计算 得到出计算结果作为整数被保存起来 | 不可执行 | 不可执行 |
STRLEN | 拷贝对象所保存的整数值,将这个拷贝转化为字符串值 |
调用sds函数,返回字符串函数 | 调用sds函数,返回字符串函数 |
SETRAVGE | 将对象转换成raw编码,然后按raw编码的方式执行此命令 | 将对象转换成raw编码,然后按raw编码的方式执行此命令 | 将字符串特定索引上的值设置为给定的字符 |
GETRANGE | 拷贝对象所保存的整数值.将这个拷贝转换成字符串值然后取出并返回字符串指定索引上的字符 | 直接取出并返回字符串指定索引上的值 | 直接取出并返回字符串指定索引上的值 |
有关键空间的操作:
1.增添新键:set
2.删除旧键:del
3.更新键:update
4.对键取值:get 和lrange
示例:
127.0.0.1:6379> set msg "hello world"
OK
127.0.0.1:6379> get msg
"hello world"
127.0.0.1:6379> update msg "other world"
127.0.0.1:6379> set msg "other world"
OK
127.0.0.1:6379> get msg
"other world"
127.0.0.1:6379> lpush alphabet "a" "b" "c"
(integer) 3
127.0.0.1:6379> lrange alphabet 1 3
1) "b"
2) "a"
有关对象操作
1.查看对象编码属性 object encoding
2.查看对象引用个数 object refcount
3.查看对象的最后一次访问时间:object idletime
示例
127.0.0.1:6379> object encoding msg
"embstr"
127.0.0.1:6379> object refcount msg
(integer) 1
127.0.0.1:6379> object idletime error
(nil)
127.0.0.1:6379> object idletime msg
(integer) 253
127.0.0.1:6379> object encoding alphabet
"quicklist"
127.0.0.1:6379> set msg 2
OK
127.0.0.1:6379> object refcount msg
(integer) 2
127.0.0.1:6379> set object 2
OK
127.0.0.1:6379> object refcount msg
(integer) 3
127.0.0.1:6379>
note :只有值为0-9999存在共享(本身redis服务器已经引用)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/129592.html