redis常用数据类型

2020-01-25  本文已影响0人  极客_Ls

1. String

如果value为纯数字可以当number用

2. List

3. Hash

4. Set

5. sorted-set

1. 添加信息

set key value

一次存取多个:

mset key1 val1 key2 val2 key3 val3 ...

2. 信息查询

get key

一次存取多个:

mget key1 key2  key3  ...

3. 清屏

clear

4. 查看帮助

help  <comment>
help @<group>  // 输入help后接一个空格,使用tab生成group名

5. 退出

1.  quit
2.  exit
3.  <esc> // 慎用

6. 删除

del key

String 操作

2.1 查看String值的长度

strlen key

2.2 追加内容

append key val

// 当该值不存在时会新建一给内容

2.3 数字类型的扩展操作

// 1. 增加
incr key // 相当于自增 key ++
// 给key增加给定的值
incrby key  increment   // 如:incrby num 3
// 给可以指定增加浮点型数据
incrbyfloat key increment  // 如:incrbyfloat num 10.5

// 2. 减小
//自减
decr key //相当于 key --
// 给定减小的值
decrby key increment  // 如:decrby num 3 
// 减指定的浮点型数据
decrbyfloat key increment

2.4 给数据设置指定的生命周期

// 给数据指定秒为单位的生命时间
setex key second value
// 给数据指定毫秒为单位的生命时间
psetex millonSecond value

2.5 String命名解决方案

// 例如微博大V的博客数量
1.  user:id:idCount:blog:num
    age: set user:id:1571785241:blog 100
2. 存储json字符串
    age:  set user:id:1571785241 {name:ljb,tel:15717085241}

2.6 key的设置约定

key置常用以下方式设置

// 表名:主键名:主键值:属性名
age: order:orderiid:123582845844:price

hash 数据类型

hash 可类似看作为java中的hashmap
也可以看作redis中的小redis

当filed数量较少时:存储结构优化为类数组结构、数据较多时使用hashmap

3.1 hash数据的添加修改

// 单个设置或修改
hset key filed value
// 多个修改或设置
hmset key filed1 value filed2 values...

3.2 hash数据的获取

// 获取单个属性的值
hget key filed
//获取多个属性的值
hmget key filed1 filed2 ...
// 获取所有属性的值
hgetall key

3.3 删除数据

hdel key filed1 [filed2] ...

3.4 获取字段表中字段的数量

hlen key

3.5 获取哈希表中是否存在指定的值

hexists key field

3.6 获取hash中的所有键和值

// 获取所有key
hkeys key
// 获取所有values
hvals key

3.7 hash数据中数字型的增长

// 指定整型数据
hincrby key field increment
// 指定浮点型数据
hincrbyflaot key field increment
// hash不提供减小操作,当要减小时使用
hincrby key field -increment

注:

  1. hash 类型下的value只能存字符串,,不允许存储其他数据类型,不存在嵌套现象、如果数据未获取到,对应的值为 nil
  2. 每个hash可以存储 232 - 1 个键值对
  3. hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了存在大量对象而设计的,不可滥用hash,更不可将hash作为对象列表使用
  4. hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就会很低,有可能成为数据访问的瓶颈
  1. 8 hash 的应用场景
    电商网站的购物车的实现
在购物车中:
    将用户作为key
    // cart:id:0000
    将商品id作为field
    // 商品编号
    以商品对应的数量为value

3.9 判断后设置

// 先判断是否有该key,是否有该field,如果有返回0,否则返回1
hsetnx key filed value

List 数据结构

4.1 添加、修改数据

// 向链表左边添加数据
lpush key value1 [value2] ... 
// 向链表右边添加数据
rpush key value1 [value2]...

4.2 获取数据

// 获取范围内的数据
lrange key start stop // 当不知道list的集合时可使用 -1 代替最大值
age:lrange list01 0 -1
// 获取索引指向的数据
lindex key index

4.3 获取并移除数据

lpop key // 获取并移除左边第一个数据

rpop key // 获取并移除右边第一个数据

4.4 规定时间内获取并移除数据

在规定时间内如果有则获取并移除,如果没有则不做处理

blpop key1 [key2] timeout

brpop key1 [key2] timeout

4.5 获取并移除指定的元素

lrem key count value

set 类型

set 类型的基本操作

5.1 向set 添加数据

sadd key member1 [member2] ...

5.2 获取set 里的全部数据

smembers key

5.3 删除数据

srem key member1 [member2] ...

5.4 获取集合内的数据总数

scard key

5.6 判断集合内是否有指定的元素

sismember key member

5.7 随机获取集合中指定数量的数据

srandmenber key [count]

5.8 随机获取并移除集合中的数据

spop key

5.9 set 数据交并差集

// 两个集合的交集
 sinter key1 [key2]
// 两个集合的并集
sunion key1 [key2]
// 两个集合的差集
sidff key1 [key2] 

将交并差集存储到指定集合中

// 保存两个集合的交集
 sinterstore destination key1 [key2]
// 保存两个集合的并集
sunionstore destination key1 [key2]
// 保存两个集合的差集
sidff store destination key1 [key2] 

将指定数据从原始集合中移动到目标集合中

smove source destination member

注:

  1. set 不允许数据重复,如果添加的数据在 set 中已经存在,将只保留一份,之后添加的结果都是false
  2. set 虽然与hash的存储结构类似,但是无法启用hash中存储值的空间

sorted_set

6.1 添加数据到sorted_set中

zadd key scores1 member1 [scores2 member2]

6.2 获取数据

[winthscores] 带排序值

// 获取全部数据,数据由小到大
zrange key start storp [withscores]
// 获取全部数据,数据由大到小
zrevrange key start stop [winthscores]
// 按条件获取数据,数据由小到大
zrangebyscore  key min max [WITHSCORES] [LIMIT]
// 按条件获取数据,数据由大到小
zreverangebyscore key max min [WITHSCORES]

6.3 删除数据

// 删除指定数据
zrem key member [member ... ]
// 删除符合条件的数据
zremrangebyrank key start stop 
// 删除 min - max 的数据
zremrangebyscore key min max

6.4 获取集合内数据总量

// 数据总量
zcard key
// 范围内数据量
zcount key min max

6.5 集合交、并集操作

// 交集
zinterstore destination numkeys key [key ...]
// 并集
zunionstore destination numkeys key [key ...]

6.6 获取数据排名

// 正向获取,有小到大额
zrank key member
// 反向排序
zrevrank key member

score值获取与修改

// 获取score
zscore key member
// 增加score
zincrby key increment member

注:

上一篇下一篇

猜你喜欢

热点阅读