redis数据类型与简单使用

redis常用命令

Redis 有 5 种基础数据结构,分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。

1.string(字符串)
> set name codehole //name("key") codehole("value")
> get name //name("key")
> exists name //存在返回1,则返回0
> del name //删除
> mget key1 key2 key3 //返回一个列表
> mset k1 v1 k2 v2 k3 v3 //设置多个
> mget k1 k2 k3
> expire name 5 # 5s后过期
...#wait for 5s
>get name
(null)
> setx name 5 codehole #5s过期,等价于set+expire
> get name
"codehole"
... wait for 5s
> get name
(null)
> setnx name codehole #如果name不存在就执行set创建
(integer)1
> get name
"codehole"
> setnx name holycoder
(integer) 0 #因为name已经存在,所以set创建不成功
> get name
"codehole"

>set age 30
ok
>intr age
(integer) 31
>incrby age 5
(integer)36
>incrty age -5
(integer) 31
>set codehole 7894684654165646465 #long.Max
ok
>incr codehole
(error)
list(列表)

右边进左边出:队列

>rpush books python java go
(integer)3
>llen books #长度
>lpop books #左抛出(第一次)
>lpop books #左抛出(第二次)
>lpop books #左抛出(第三次)
>lpop books #左抛出(null)

右边进右边出:栈

>rpush books python java go
(integer)3
>rpop books #右抛出(第一次)
>rpop books #右抛出(第二次)
>rpop books #右抛出(第三次)
>rpop books #右抛出(null)
hash(字典)
hset books java "think in java"
(integer)1
hset books go "concurrency in go"
(integer)1
hset books python "python cookbook"
(integer)1
> hgetall books 
1."java"
2."think in java"
3."go"
4."concurrency in go"
5."python"
6."python cookbook"
>hlen books
(integer) 3
>hget books java
"think in java"
>hset books go "learning go programming"
(integer)0
>het books go
"learning go programming"
>hmset boks java "effective java" pyhton "learning python" go "modern go"
set集合(无序)
>sadd books python (integer)1
>sadd books python # 重复(integer)0
>sadd books java golang (integer)2
>smembers books
"java"
"python"
"golang"
>sismember books java #查询某个value 是否存在,相当于contains(o)
(integer) 1
sismember books rust (integer)0
>scard books #获取长度相当于count()
(integer)3
>spop books #弹出一个
"java"
zset(有序集合)
>zadd books 9.0 "think in java"
(integet) 1
>zadd books 8.9 "java concurrency"
(integet) 1
>zadd books 8.6 "java cookbook"
(integet) 1
>zrange books 0 -1 #按code排序列出,参数区间为排名范围  0 -1 (全部)
>zrevrange books 0 -1 #按score 逆序列出,参数区间为排名范围
"think in java"
"java concurrency"
"java cookbook"
> zcard books # 相当于 count()
(integer) 3
> zscore books "java concurrncy" #获取指定value的core
"8.90000000000000000000" #内部double类型进行储存,所以存在小数点精度问题
>zrank books "java concurrencu" #排名
(integer) 1
> zrangebyscore books 0 8.91 #根据分值区间遍历 zset
"java cookbook"
"java concurrency"
>zrem books "java concurrency" #删除value
(integer) 1
>zrange books 0-1
"java cookbook"
"think in java"
keys*

keys:全量遍历键,用来列出所有满足特定正则字符串规则的key,当redis数据量比较大时,性能比较差,要避免使用

scan

scan:渐进式遍历键,scan 参数提供了三个参数,第一个是 cursor 整数值,第二个是 key 的正则模式,第三个是遍历的 limit hint。第一次遍历时,cursor 值为 0,然后将返回结果中第一个整数值作为下一次遍历的 cursor。一直遍历到返回的 cursor 值为 0 时结束。

>scan 0 match key99* count 100
# 0(游标数值,当返回0时,代表遍历结束,key99* 代表正则模式。100 代表遍历的哈希槽,返回的不一定是多少。hash 时无序的)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值