/* key为String,
值:
基本类型
String
Hash
List
Set
SortedSet
特殊类型:
GEO
BitMap
HyperLog
*/
#查询帮助文档--https://redis.io/commands/#命令行中查看帮助192.168.115.129:6379[1]>help @string
#---------redis通用命令-------------#keys [pattern]:查看符合模板的所有key pattern,生产环境中不建议使用#del [key ...]:删除指定的key#exists key[key ...]判断key值是否存在#expire key seconds:给一个key设置有效期,有效期到期时该key会被自动删除#ttl key:查看key的剩余有效期#[*]查看所有的key192.168.115.129:6379[1]> keys *
1)"age"192.168.115.129:6379[1]> mset k1 v1 k2 v2 k3 v3
OK
192.168.115.129:6379[1]> keys *
1)"k3"2)"k2"3)"k1"4)"age"192.168.115.129:6379[1]> del k1 k2 k3 k4
(integer)3#返回删除数量192.168.115.129:6379[1]> expire age 15(integer)1192.168.115.129:6379[1]> ttl age
(integer) -2 #-2表示已过有效期被删除192.168.115.129:6379[1]> keys *
(empty array)192.168.115.129:6379[1]>set age 15
OK
192.168.115.129:6379[1]> ttl age
(integer) -1 #-1表示永不过期#---------redis通用命令-------------#---------redis常用命令-------------#set 添加或者修改已经存在的一个string类型的键值对#get 根据key获取string类型的值#mset 批量添加多个string类型的键值对#mget 根据多个key获取多个string类型的value#incr 让一个整型的key自增1#incrby 让一个整型的key自增并指定步长,如incrby num 2让num值自增2#increbyfloat 让一个浮点类型的数字自增并指定步长#setnx 添加一个string类型的键值对,前提是这个key不存在,否则不执行#setex 添加一个String类型的键值对,并且指定有效期127.0.0.1:6379>set age 14
OK
127.0.0.1:6379> get age
"14"127.0.0.1:6379>set age 18
OK
127.0.0.1:6379> get age
"18"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> incr age
(integer)19127.0.0.1:6379> incrby age 3(integer)22127.0.0.1:6379> incrby age -1
(integer)21127.0.0.1:6379>set score 98.1
OK
127.0.0.1:6379> incrbyfloat score 1.1"99.2"127.0.0.1:6379> setnx name tye
(integer)1127.0.0.1:6379> get name
"tye"127.0.0.1:6379> setnx name edison
(integer)0127.0.0.1:6379> get name
"tye"#setex同 set key seconds value ex127.0.0.1:6379> setex age 1010
OK
127.0.0.1:6379> ttl age
(integer) -2
127.0.0.1:6379> get age
(nil)#---------redis常用命令-------------#redis的key允许有多个单词形成层级结构,多个单词用“:”隔开,格式如【项目名:业务名:类型:ID】
例:项目名为gf,有user和product两种类型不同的数据,定义格式如下
user相关的key:gf:user:1
product相关的key:gf:product:1
127.0.0.1:6379>set gf:user:1 '{ "id":1,"name":"tye","age":21 }'
OK
127.0.0.1:6379> get gf:user:1
"{ \"id\":1,\"name\":\"tye\",\"age\":21 }"127.0.0.1:6379>set gf:user:2 '{ "id":2,"name":"edison","age":18 }'
OK
127.0.0.1:6379>set gf:product:1 '{ "id":1,"name":"小米11","price":2100 }'
OK
127.0.0.1:6379>set gf:product:2 '{ "id":2,"name":"荣耀30","price":2700 }'
OK
127.0.0.1:6379> keys *
1)"gf:product:2"2)"gf:product:1"3)"name"4)"k2"5)"k3"6)"gf:user:2"7)"score"8)"gf:user:1"9)"k1"
Hash类型
Hash类型也叫散列,其value是一个无序字典,类似于Java中的HashMap
String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便
#---------------常见命令----------------
hset key field value 添加或修改hash类型key的field值
hget key field 获取一个hash类型key的field值
hmset 批量添加多个hash类型key的field值
hmget 批量获取多个hash类型key的field值
hgetall 获取一个hash类型的key中的所有field
hkeys 获取一个hash类型的key中的所有field
hvals 获取一个hash类型的key中的所有的value
hincrby;让一个hash类型key的字段值自增并指定步长
hsetnx 添加一个hash类型的key的field值,前提此field不存在,否则不执行
#---------------常见命令----------------127.0.0.1:6379> hset gf:user:3 id3 name dizzy age 22(integer)3127.0.0.1:6379> hget gf:user:3 name
"dizzy"127.0.0.1:6379> hget gf:user:3 age
"22"127.0.0.1:6379> hset gf:user:3 age 33(integer)0127.0.0.1:6379> hget gf:user:3 age
"33"127.0.0.1:6379> hgetall gf:user:3
1)"id"2)"3"3)"name"4)"dizzy"5)"age"6)"33"127.0.0.1:6379> hkeys gf:user:3
1)"id"2)"name"3)"age"127.0.0.1:6379> hvals gf:user:3
1)"3"2)"dizzy"3)"33"127.0.0.1:6379> hincrby gf:user:3 age 1(integer)34127.0.0.1:6379> hsetnx gf:user:3 age 44(integer)0127.0.0.1:6379> hget gf:user:3 age
"34"