Redis基础 - 2.3五大数据类型 字符串

1. set
# 设置 key和value: set key value
127.0.0.1:6379> set user:name xiaoming
OK
2. get
#获取 key对应的value: get key
127.0.0.1:6379> get user:name
"xiaoming"
3. setnx
# 设置一个不存在的key value,不覆盖
redis> SETNX job "programmer"    # job 设置成功
(integer) 1

redis> SETNX job "code-farmer"   # 尝试覆盖 job ,失败
(integer) 0

redis> GET job                   # 没有被覆盖
"programmer"
4. setex
# 带过期时间设置/覆盖key 单位秒
redis> SET cd "timeless"
OK

redis> SETEX cd 3000 "goodbye my love"
OK

redis> GET cd
"goodbye my love"

redis> TTL cd
(integer) 2997
5. psetex
# 带过期时间设置/覆盖key 单位毫秒
redis> PSETEX mykey 1000 "Hello"
OK

redis> PTTL mykey
(integer) 999

redis> GET mykey
"Hello"
6. mset
#  设置多个值
127.0.0.1:6379> MSET date "2012.3.30" time "11:00 a.m." weather "sunny"
OK
7. mget
# 获取多个值
127.0.0.1:6379> MGET date time weather
1) "2012.3.30"
2) "11:00 a.m."
3) "sunny"
8. msetnx
# 设置多个不存在的值
redis> MSETNX rmdbs "MySQL" nosql "MongoDB" key-value-store "redis"
(integer) 1

redis> MGET rmdbs nosql key-value-store
1) "MySQL"
2) "MongoDB"
3) "redis"

redis> MSETNX rmdbs "Sqlite" language "python"  # rmdbs 键已经存在,操作失败
(integer) 0

redis> EXISTS language                          # 因为 MSETNX 命令没有成功执行
(integer) 0                                     # 所以 language 键没有被设置

redis> GET rmdbs                                # rmdbs 键也没有被修改
"MySQL"
9. getset
# 覆盖或设置value 返回原来的value
redis> GETSET db mongodb    # 没有旧值,返回 nil
(nil)

redis> GET db
"mongodb"

redis> GETSET db redis      # 返回旧值 mongodb
"mongodb"

redis> GET db
"redis"
10. append
# 添加到字符串末尾,或创建字符串
redis> APPEND myphone "nokia"       # 对不存在的 key 进行 APPEND ,等同于 SET myphone "nokia"
(integer) 5                         # 字符长度
redis> APPEND myphone " - 1110"     # 长度从 5 个字符增加到 12 个字符
(integer) 12

redis> GET myphone
"nokia - 1110"
11. setrange
# 覆盖对应位置的字符
redis> SET greeting "hello world"
OK

redis> SETRANGE greeting 6 "Redis"
(integer) 11

redis> GET greeting
"hello Redis"

# 创建并填充前面的位置
redis> EXISTS empty_string
(integer) 0

redis> SETRANGE empty_string 5 "Redis!"   # 对不存在的 key 使用 SETRANGE
(integer) 11

redis> GET empty_string                   # 空白处被"\x00"填充
"\x00\x00\x00\x00\x00Redis!"
12. getrange
# 返回字符串值的指定部分
redis> SET greeting "hello, my friend"
OK

redis> GETRANGE greeting 0 4          # 返回索引0-4的字符,包括4。
"hello"

redis> GETRANGE greeting -1 -5        # 不支持回绕操作
""

redis> GETRANGE greeting -3 -1        # 负数索引
"end"

redis> GETRANGE greeting 0 -1         # 从第一个到最后一个
"hello, my friend"

redis> GETRANGE greeting 0 1008611    # 值域范围不超过实际字符串,超过部分自动被符略
"hello, my friend"
13. strlen
# 获取字符串值的长度, 不存在的键的长度为 0
redis> SET mykey "Hello world"
OK

redis> STRLEN mykey
(integer) 11
14. incr
# 递增; key不存在时value为 1; 不是数字时报错
redis> SET page_view 20
OK

redis> INCR page_view
(integer) 21

redis> GET page_view    # 数字值在 Redis 中以字符串的形式保存
"21"
15. incrby
# 不存在key时创建赋值, 是数字是增加,不是数字时报错
127.0.0.1:6379> incrby kk 10
(integer) 10

127.0.0.1:6379> incrby kk 20
(integer) 30

127.0.0.1:6379> get kk
"30"

127.0.0.1:6379> append kk m
(integer) 3

127.0.0.1:6379> incrby kk 33
(error) ERR value is not an integer or out of range
16. incrbyfloat
# 加上浮点数
redis> GET decimal
"3.0"

redis> INCRBYFLOAT decimal 2.56
"5.56"

redis> GET decimal
"5.56"
17. decr
# 递减操作或赋值
127.0.0.1:6379> decr count
(integer) -1
127.0.0.1:6379> decr count
(integer) -2
18. decrby
# 相减操作或赋值
127.0.0.1:6379> decrby page 10
(integer) -10

127.0.0.1:6379> decrby page 10
(integer) -20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值