Redis

Redis 笔记(四)-String 字符串类型详解

2021-08-06  本文已影响0人  yjtuuige
命令 说明
set 设置一个key/value
get 根据key获得对应的value
mset 一次设置多个key value
mget 一次获得多个key的value
getset 获得原始key的值,同时设置新值
strlen 获得对应key存储value的长度
append 为对应key的value追加内容
getrange 索引0开始 截取value的内容
setex 设置一个key存活的有效期(秒)
psetex 设置一个key存活的有效期(毫秒)
setnx 存在不做任何操作,不存在添加
msetnx原子操作(只要有一个存在不做任何操作) 可以同时设置多个key,只要有一个存在都不保存
decr 进行数值类型的-1操作
decrby 根据提供的数据进行减法操作
Incr 进行数值类型的+1操作
incrby 根据提供的数据进行加法操作
Incrbyfloat 根据提供的数据加入浮点数
127.0.0.1:6379> set key1 test        # 设置值
OK
127.0.0.1:6379> get key1        # 获取值
"test"
127.0.0.1:6379> keys *        # 获得所有的key
1) "key1"
127.0.0.1:6379> exists key1        # 判断某一个key是否存在
(integer) 1
127.0.0.1:6379> append key1 hello    # 追加字符串,如果当前key不存在,就相当于setkey 
(integer) 9
127.0.0.1:6379> get key1
"testhello"
127.0.0.1:6379> strlen key1        # 获取字符串的长度
(integer) 9
127.0.0.1:6379> append key1 ,world
(integer) 15
127.0.0.1:6379> strlen key1
(integer) 15
127.0.0.1:6379> get key1
"testhello,world"
# i++
# 步 长 i+=
127.0.0.1:6379> set views 0    # 初始浏览量为0 OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views    # 自增1    浏览量变为1
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> decr views    # 自减1    浏览量-1
(integer) 1
127.0.0.1:6379> decr views
(integer) 0
127.0.0.1:6379> decr views
(integer) -1
127.0.0.1:6379> get views
"-1"
127.0.0.1:6379> incrby views 10    # 可以设置步长,指定增量!
(integer) 9
127.0.0.1:6379> incrby views 10
(integer) 19
127.0.0.1:6379> decrby views 5
(integer) 14
# 字符串范围 range
127.0.0.1:6379> set key1 hello,world        # 设置 key1 的值
OK
127.0.0.1:6379> get key1
"hello,world"
127.0.0.1:6379> getrange key1 0 5         # 截取字符串 [0,5]
"hello,"
127.0.0.1:6379> getrange key1 0 -1        # 获取全部的字符串 和 get key是一样的
"hello,world"

# 替换
127.0.0.1:6379> set key2 test
OK
127.0.0.1:6379> get key2
"test"
127.0.0.1:6379> setrange key2 1 nn        # 替换指定位置开始的字符串
(integer) 4
127.0.0.1:6379> get key2
"tnnt"
# setex (set with expire)    # 设置过期时间
# setnx (set if not exist)    # 不存在时设置 (在分布式锁中会常常使用!) 
127.0.0.1:6379> setex key1 30 hello        # 设置 key1 的值为 hello,30秒后过期
OK
127.0.0.1:6379> ttl key1        # 查看 key1 剩余时间
(integer) 25
127.0.0.1:6379> get key1
"hello"
127.0.0.1:6379> setnx mykey redis        # 如果 mykey 不存在,创建mykey
(integer) 1
127.0.0.1:6379> keys *
1) "mykey"
127.0.0.1:6379> ttl key1        # 查看 key1 剩余时间,-2 表示过期
(integer) -2
127.0.0.1:6379> setnx mykey MongoDB        # 如果mykey存在,创建失败
(integer) 0
127.0.0.1:6379> get mykey        # 查看 mykey 值,还是之前的 redis
"redis"
# mset 批量设置值
# mget 批量获取值
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3        #    同时设置多个值
OK    
127.0.0.1:6379> keys *
1) "k2"
2) "k3"
3) "k1"
127.0.0.1:6379> mget k1 k2 k3        #    同时获取多个值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4        # msetnx 是一个原子性的操作,要么一起成功,要么一起失败
(integer) 0
127.0.0.1:6379> get k4
(nil)
# 设置一个user:1 对象 值为 json字符来保存一个对象
# 这里的key是一个巧妙的设计: user:{id}:{filed} , 如此设计在Redis中是完全OK了

127.0.0.1:6379> mset user:1:name zhangsan user:1:age 20
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "20"
getset # 先get然后在set
127.0.0.1:6379> getset db redis    # 如果不存在值,则返回 nil (nil)
127.0.0.1:6379> get db
"redis
127.0.0.1:6379> getset db mongodb    # 如果存在值,获取原来的值,并设置新的值
"redis" 
127.0.0.1:6379> get db
"mongodb"
上一篇下一篇

猜你喜欢

热点阅读