千家信息网

Redis字符串类型的操作

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]如: set a 1 ex 10 , 10秒有效Set a 1 px 9000 , 9秒有效注: 如果ex,px同
千家信息网最后更新 2025年02月03日Redis字符串类型的操作

set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]

如: set a 1 ex 10 , 10秒有效
Set a 1 px 9000 , 9秒有效
注: 如果ex,px同时写,以后面的有效期为准
如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒

nx: 表示key不存在时,执行操作
xx: 表示key存在时,执行操作

mset multi set , 一次性设置多个键值

例: mset key1 v1 key2 v2 ....

get key

作用:获取key的值

mget key1 key2 ..keyn

作用:获取多个key的值

setrange key offset value

作用:把字符串的offset偏移字节,改成value
redis 127.0.0.1:6379> set greet hello
OK
redis 127.0.0.1:6379> setrange greet 2 x
(integer) 5
redis 127.0.0.1:6379> get greet
"hexlo"

注意: 如果偏移量>字符长度, 该字符自动补0x00

redis 127.0.0.1:6379> setrange greet 6 !
(integer) 7
redis 127.0.0.1:6379> get greet
"heyyo\x00!"

append key value

作用: 把value追加到key的原值上

getrange key start stop

作用: 是获取字符串中 [start, stop]范围的值
注意: 对于字符串的下标,左数从0开始,右数从-1开始
redis 127.0.0.1:6379> set title 'chinese'
OK
redis 127.0.0.1:6379> getrange title 0 3
"chin"
redis 127.0.0.1:6379> getrange title 1 -2
"hines"

注意:
1: start>=length, 则返回空字符串
2: stop>=length,则截取至字符结尾
3: 如果start 所处位置在stop右边, 返回空字符串

getset key newvalue

作用: 获取并返回旧值,设置新值
redis 127.0.0.1:6379> set cnt 0
OK
redis 127.0.0.1:6379> getset cnt 1
"0"
redis 127.0.0.1:6379> getset cnt 2
"1"

incr key

作用: 指定的key的值加1,并返回加1后的值

注意:
1:不存在的key当成0,再incr操作
2: 范围为64有符号

incrby key number

redis 127.0.0.1:6379> incrby age 90
(integer) 92

incrbyfloat key floatnumber

redis 127.0.0.1:6379> incrbyfloat age 3.5
"95.5"

decr key

redis 127.0.0.1:6379> set age 20
OK
redis 127.0.0.1:6379> decr age
(integer) 19
(秒杀,抢购可以用decr)

decrby key number

redis 127.0.0.1:6379> decrby age 3
(integer) 16

getbit key offset

作用:获取值的二进制表示,对应位上的值(从左,从0编号)
redis 127.0.0.1:6379> set char A
OK
redis 127.0.0.1:6379> getbit char 1
(integer) 1
redis 127.0.0.1:6379> getbit char 2
(integer) 0
redis 127.0.0.1:6379> getbit char 7
(integer) 1

setbit key offset value

设置offset对应二进制位上的值
返回: 该位上的旧值

注意:
1:如果offset过大,则会在中间填充0,
2: offset最大大到多少
3:offset最大2^32-1,可推出最大的的字符串为512M
大小写转换:

bitop operation destkey key1 [key2 ...]

对key1,key2..keyN作operation,并将结果保存到 destkey 上。
operation 可以是 AND 、 OR 、 NOT 、 XOR

redis 127.0.0.1:6379> setbit lower 7 0
(integer) 0
redis 127.0.0.1:6379> setbit lower 2 1
(integer) 0
redis 127.0.0.1:6379> get lower
" "
redis 127.0.0.1:6379> set char Q
OK
redis 127.0.0.1:6379> get char
"Q"
redis 127.0.0.1:6379> bitop or char char lower
(integer) 1
redis 127.0.0.1:6379> get char
"q"

注意: 对于NOT操作, key不能多个


注意:
保存session的时候应该在hash中!

( 1 )字符串只应用在小量级的数据记录中。如果数据量超过百万级别,那么使用字符串来保存简单的映射关系将会浪费大量内存。此时需妥使用Redis 的另一种数据结构一-Hash 。储存相同量级的数据, Hash 结构消耗的内存只有字符串结构的1/4 ,但查询速度却不会比字符串差。关于Hash 结构,将会在第9 章讲解。
( 2 )如采Redis 中有大量Key ,那么执行"keys *"命令会对Redis 性能造成短暂影响,甚至导致Redis 失去响应。因此,绝对不应该在不清楚当前有多少Key 的情况下冒然列出当前所有的Key。

字符 字符串 作用 有效 数据 结构 最大 多个 二进制 内存 有效期 空字符 范围 量级 偏移 清楚 相同 一次性 下标 位置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安全网络安全工作的目标包括 广州采拍网络技术有限公司 TS下载软件开发 网络安全分析师工作 n11数据库脚本怎么导入 医学影像学肺部ct数据库 河北正规网络技术服务创新服务 pg数据库opc通讯 梦幻西游买角色怎么转服务器 电脑服务器变了打印机无法连接 新大陆软件开发工程师 存储服务器网络灯异常 大专计算机网络技术去哪里实习 网络安全知识手抄报a4 网络技术员 总结 汇通达网络技术有限公司官网 蓝泰源老是服务器忙 万德数据库有对外直接投资吗 我想看国家网络安全 轻量级应用服务器能跑代码吗 互联网高科技实业 在社会经济领域网络安全主要 山东工程管理软件开发平台 邯郸晨光网络技术有限公司 网络安全知识教案课件 奇酷互联网络科技招聘 数据库借书日期 碧蓝航线怎么开服务器 大华硬盘存储服务器如何回放 为什么要报考计算机网络技术
0