String(字符串)
字符串可以进行追加操作 使用 append命令
127.0.0.1:6379>
127.0.0.1:6379> set v1 hello #添加一个键 v1
OK
127.0.0.1:6379> EXISTS v1 #查看v1 是否存在
(integer) 1
127.0.0.1:6379> get v`1
(nil)
127.0.0.1:6379> get v1 #读取v1的值
"hello"
127.0.0.1:6379> APPEND v1 word #在v1后追加字符串 word 如果当前key不存在 那么就相当于 set key
(integer) 9
127.0.0.1:6379> get v1 #读取v1的值
"helloword"
127.0.0.1:6379>
也可以获取字符串 长度 strlen
127.0.0.1:6379> get v1
"helloword"
127.0.0.1:6379> STRLEN v1
(integer) 9
127.0.0.1:6379>
实现加一 、减一操作
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 #将这个值加一
(integer) 1
127.0.0.1:6379> get views
"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 #将这个值减一
(integer) 1
127.0.0.1:6379> get views
"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 和 DECRBY 来进行设置
127.0.0.1:6379> get views
"-1"
127.0.0.1:6379> INCRBY views 10
(integer) 9
127.0.0.1:6379> get views
"9"
127.0.0.1:6379> DECRBY views 5
(integer) 4
127.0.0.1:6379> get views
"4"
127.0.0.1:6379>
在字符串上指定区间截取字符,如果超出了字符串的长度 那么就会默认截取到字符串最后使用0 -1 这个区间就会显示原本的字符串 0 -几就是从后往前取值
127.0.0.1:6379> set k1
127.0.0.1:6379> set k1 hello,anjiayu
OK
127.0.0.1:6379> get k1
"hello,anjiayu"
127.0.0.1:6379> GETRANGE k1 0 4
"hello"
127.0.0.1:6379> get k1
"hello,anjiayu"
127.0.0.1:6379> GETRANGE k1 11 15
"yu"
127.0.0.1:6379> GETRANGE k1 11 20
"yu"
127.0.0.1:6379> GETRANGE k1 19 20
""
127.0.0.1:6379> GETRANGE k1 0 -2
"hello,anjiay"
127.0.0.1:6379> GETRANGE k1 0 -1
"hello,anjiayu"
127.0.0.1:6379> GETRANGE k1 0 -5
"hello,anj"
127.0.0.1:6379>
替换指定位置上的字符,替换的字符会自动向后填充 如果超过原本字符串的长度 也会继续填充
127.0.0.1:6379> set k2 abcdefg
OK
127.0.0.1:6379> get k2
"abcdefg"
127.0.0.1:6379> SETRANGE k2 2 xxx
(integer) 7
127.0.0.1:6379> get k2
"abxxxfg"
127.0.0.1:6379> SETRANGE k2 2 xxxxxxxxx
(integer) 11
127.0.0.1:6379> get k2
"abxxxxxxxxx"
127.0.0.1:6379>
设置过期时间和不存在时设置
#SETNX 在不存在时设置 如果在使用这个命令的时侯这个key不存在 那么会设置 key 如果存在的话 就不会设置这个key
#SETEX设置过期时间
127.0.0.1:6379> SETEX k3 30 an
OK
127.0.0.1:6379> get k3
"an"
127.0.0.1:6379> ttl k3
(integer) 21
127.0.0.1:6379>
127.0.0.1:6379> SETNX k4 redis
(integer) 1
127.0.0.1:6379> SETNX k4 java
(integer) 0
127.0.0.1:6379> get k4
"redis"
127.0.0.1:6379> keys *
1) "k1"
2) "k2"
3) "k4"
127.0.0.1:6379>
同时设置多个值
(empty list or set)
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 k3 v33 k4 v4 #多个值的不存在时修改
(integer) 0
127.0.0.1:6379> MGET k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> MGET k1 k2 k3 k4
1) "v1"
2) "v2"
3) "v3"
4) (nil)
127.0.0.1:6379>
保存一个对象
#这里使用了一个非常巧妙的设计 使用user:{id}:{属性} 来当作key
127.0.0.1:6379> clear
127.0.0.1:6379> MSET user:1:name anjiayu user:1:age 18
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "anjiayu"
2) "18"
127.0.0.1:6379>
组合命令getset先get后set
127.0.0.1:6379> GETSET db redis #如果不存在返回null 设置新的值标签:127.0,String,get,0.1,views,6379,字符串,integer From: https://www.cnblogs.com/AnJiaYu/p/17660173.html
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> GETSET db mysql#如果在返回原有值 设置新的值
"redis"
127.0.0.1:6379> get db
"mysql"
127.0.0.1:6379>