Redis 学习笔记String操作

Posted Adorable_Rocy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 学习笔记String操作相关的知识,希望对你有一定的参考价值。

1.基本set&get设置和获取值
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> 
2.expire key second
127.0.0.1:6379> expire k1 30 # 设置30秒后失效
(integer) 1
127.0.0.1:6379> ttl k1 # 查看失效时间
(integer) 26
127.0.0.1:6379> ttl k1 
(integer) 23
127.0.0.1:6379> ttl k1
(integer) 20
127.0.0.1:6379> get k1  # 过了30s再去获取值已经失效
(nil)
127.0.0.1:6379> ttl k1
(integer) -2   # 失效后的值为-2
3.append key val
127.0.0.1:6379> append k1 "hello" # 追加字符串,如果键不存在,相当于set k v
(integer) 5
127.0.0.1:6379> get k1
"hello
4.strlen key
127.0.0.1:6379> STRLEN k1 # 获取键的长度
(integer) 5
5.incr key
127.0.0.1:6379> set views 0 # 设置初始化的值
OK
127.0.0.1:6379> INCR views # 自增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> 
6.decr key
127.0.0.1:6379> DECR views # 完成自减
(integer) 1
127.0.0.1:6379> DECR view # 如果不存在键 自减并且创建键
(integer) -1 
127.0.0.1:6379> DECR views
(integer) 0
127.0.0.1:6379> DECR view
(integer) -2
127.0.0.1:6379> keys *
1) "views"
2) "k1"
3) "view"
7.incrby key
127.0.0.1:6379> INCRBY views 10 # 连增
(integer) 10
127.0.0.1:6379> INCRBY views 11
(integer) 21
127.0.0.1:6379> 
8.decrby key
127.0.0.1:6379> DECRBY views 15 # 连减
(integer) 6
127.0.0.1:6379> DECRBY views 10
(integer) -4
127.0.0.1:6379> 
9.getrange key [ index lastindex ]
127.0.0.1:6379> set name "fat" 
OK
127.0.0.1:6379> APPEND name "cat,welcome"
(integer) 14
127.0.0.1:6379> GETRANGE name 0 -1 # 获取所有内容
"fatcat,welcome"
127.0.0.1:6379> GETRANGE name 0 3 # 获取指定索引 (闭区间)
"fatc"
127.0.0.1:6379> 
10.setrange key index val
127.0.0.1:6379> GETRANGE name 0 -1
"fatcat,welcome"
127.0.0.1:6379> SETRANGE name 0 abc # 替换开始索引后的数据
(integer) 14
127.0.0.1:6379> GETRANGE name 0 -1
"abccat,welcome"
11.setex key sencond val
# setex (set with expire) 设置过期时间
127.0.0.1:6379> setex mcode 10 "msgcode" # 设置10秒失效
OK
127.0.0.1:6379> ttl mcode
(integer) 4
127.0.0.1:6379> ttl mcode
(integer) -2
127.0.0.1:6379> get mcode 
(nil) 
127.0.0.1:6379> 
12.setnx key val
# setnx (set if not exists)
127.0.0.1:6379> SETNX mymsg "notexists" # 如果不存在才会被创建
(integer) 1
127.0.0.1:6379> GETRANGE mymsg 0 -1
"notexists"
127.0.0.1:6379> SETNX mymsg "fixmymsg" # 修改内容
(integer) 0  # 这里是没有被修改的,因为无法修改
127.0.0.1:6379> GETRANGE mymsg 0 -1
"notexists"
127.0.0.1:6379> 
13.mset k1 v1 k2 v2 …
# mset 批量设置
# mget 批量获取
127.0.0.1:6379> FLUSHdb # 清空当前库缓存 FLUSHALL # 清空全部库缓存
OK
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
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)
127.0.0.1:6379> 
14.对象
# 使用json串的形式储存对象
127.0.0.1:6379> set user:1 {name:zhangsan,age:18}
OK
127.0.0.1:6379> get user:1
"{name:zhangsan,age:18}"
127.0.0.1:6379> 
# 使用模板 user:{id}:{filed}
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"
127.0.0.1:6379> 
15.getset key val
127.0.0.1:6379> FLUSHdb 
OK
127.0.0.1:6379> getset k1 v1 # 先获取原来的值 再进行设置值
(nil)
127.0.0.1:6379> get k1 # 获取新值
"v1"
127.0.0.1:6379> getset k1 newv1 # 设置新值
"v1"
127.0.0.1:6379> get k1
"newv1" # 获取新值
127.0.0.1:6379> 

以上是关于Redis 学习笔记String操作的主要内容,如果未能解决你的问题,请参考以下文章

Redis 学习 —— 数据类型及操作

Redis学习笔记 ---- PHP操作Redis各数据类型

Redis学习笔记

学习笔记:python3,代码片段(2017)

Redis学习笔记一

redis学习笔记--redis的认识和使用