Linux学习-Redis命令使用

Redis数据结构
/* 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的剩余有效期
#[*]查看所有的key
192.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) 1
192.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) 19
127.0.0.1:6379> incrby age 3
(integer) 22
127.0.0.1:6379> incrby age -1
(integer) 21
127.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) 1
127.0.0.1:6379> get name
"tye"
127.0.0.1:6379> setnx name edison
(integer) 0
127.0.0.1:6379> get name
"tye"
#setex同 set key seconds value ex
127.0.0.1:6379> setex age 10 10
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 id 3 name dizzy age 22
(integer) 3
127.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) 0
127.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) 34
127.0.0.1:6379> hsetnx gf:user:3 age 44
(integer) 0
127.0.0.1:6379> hget gf:user:3 age
"34"
List类型
List类型与Java中的LinkedList类似,看做一个双向链表,支持正向、反向查询
特性:有序,元素可以重复,插入和删除快,查询速度一般,常用于存储有序数据,如朋友圈点赞列表、评论列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值