2、数据类型及命令

该栏目会系统的介绍 Redis 的知识体系,共分为相关概念、操作指令、主从复制等模块



常见命令

1、键相关命令

功能指令
查看当前库所有keykeys *
判断某个key是否存在exists key
设置key的过期时间expire key seconds
查看key的过期时间ttl key
删除指定的key数据del key
修改键名rename key newKey
查看key是什么类型type key

2、库相关命令

功能指令
切换到dbNo数据库select dbNo
查看当前数据库key数量dbsize
清空当前数据库数据flushdb
清空全部数据库数据flushall

字符串(String)

1、简介

  • 概述key-value形式的二进制安全的类型。意味着String可以存储任何数据,比如jpg图片或者序列化对象。一个字符串值最多可以是512M
  • 数据结构简单动态字符串,采用预分配冗余空间的方式来减少内存的频繁分配

2、相关命令

功能命令
添加键值set key value
添加键值,key不存在才能添加成功setnx key value
添加键值,并设置过期时间setex key second value
设置多个键值mset key1 value1…
追加值到原值append key value
将数字值增1incr key
将数字值增加stepincrby key step
将数字值减1decr key
将数字值减stepdecrby key step
获取值get key
获取多个值mget key1…
设置新值并获取旧值getset key value
获取值的长度strlen key

列表(List)

1、简介

  • 概述:List是单键多值的双向链表
  • 数据结构:List的数据结构是由压缩链表或快速链表。列表元素比较少的情况下只会使用压缩列表,当数据量比较多的时候才会改成快速链表

2、相关命令

功能命令
从左边插入一个或多个值lpush key value
从右边插入一个或多个值rpush key value
在value之前或之后插入newValuelinsert key before | after value newValue
从左边弹出值lpop key
从右边弹出值rpop key
从左边删除n个valuelrem key n value
将下标index的值修改为valuelset key index value
从key1列表右边弹出一个值,插到key2列表左边rpoplpush key1 key2
根据索引范围获取元素lrange key start end
根据索引获取元素lindex key index
获取列表长度llen key

集合(Set)

1、简介

  • 概述:Set是无序集合,其底层是一个value为null的hash表

2、相关命令

功能命令
将一个或多个元素加入到集合sadd key value
删除集合中某个元素srem key value
随机从该集合中弹出一个集spop key
把value值从一个集合移动另一个集合smove source dest value
取出该集合所有元素smembers key
随机从该集合中取出n个值srandmember key n
返回该集合的元素个数scard key
判断集合是否存在该valuesismember key value
求两个集合的交集sinter key1 key2
求两个集合的并集sunion key1 key2
求两个集合的差集sdiff key1 key2

哈希表(Hash)

1、简介

  • 概述:是一个键对应一个映射表(filed和value)的结构类型
    哈希表结构
  • 数据结构:当元素个数比较少时,使用压缩列表,否则使用哈希表

2、相关命令

功能命令
给该哈希表赋值hset key field value
给该哈希表赋值,只有不存在才能赋值成功hsetnx key field value
给该哈希表赋值多个键值hmset key field value…
为该哈希表的field的值增量incrementhincrby key field increment
获取哈希表中的field值hget key field
获取哈希表中多个值hget key field…
获取哈希表中所有fieldhkeys key
获取哈希表中所有valuehvals key
判断哈希表中该field是否存在hexists key field

有序集合(ZSet)

1、简介

  • 概述不重复元素的有序集合。每个成员关联一个评分,该评分可以用来排序集合。
  • 数据结构:ZSet底层有两个数据结构,Hash的作用是用来关联元素value和评分,保障元素value的唯一性。跳跃表的作用是用于给元素value排序,根据score的范围获取元素

2、相关命令

功能命令
添加元素zadd key score member
为集合的score加上增量zincrby key increment member
删除该集合下指定元素zrem key member
根据key获取元素的scorezcore key member
获取索引范围内的元素zrange key start end [withscores]
获取分数区间内的元素zrangebyscore key min max [withscores]
倒序获取分数区间内的元素zrevrangebyscore key max min [withscores]
分数区间内的元素个数zcount key min max
返回该元素在集合中的排名zrank key member

HyperLogLog

1、简介

  • 概述: HyperLogLog键只需要花费12KB内存,就可以计算接近 2^64 个不同元素的基数。但是不会储存输入元素本身

2、相关命令

功能命令
添加指定元素pfadd key element
计算基数pfcount key
将一个或多个HLL合并的结果存储到另一个HLLpfmerge destkey skey1 skey2

3、案例

# 添加语言元素到HLL
pfadd language1 redis
pfadd language1 java
pfadd language1 redis

# 统计HLL基数
pfcount language1 # 结果为2

# 添加语言元素HLL
pfadd language2 redis
pfadd language2 mongodb

# 统计HLL基数
pfcount language1 language2  # 结果为3

# 合并结果
pfmerge language3 language1 language2

Geospatial

1、简介

  • 概述:存储地理信息类型

2、相关命令

功能命令
存储经纬度geoadd key lng lat
获取指定地区的经纬度geopos key member
获取两个位置之间的直线距离geodist key m1 m2
以给定的经纬度为中心找出radius半径内的元素georadius key lng lat radius m

3、案例

# 存储地理位置
geoadd china:city 121.47 31.23 shanghai
geoadd china:city 114.05 22.52 shenzhen 116.38 39.90 beijing

# 获取北京地理位置
geopos china:city beijing

# 计算北京和上海之前的距离
geodist china:city beijing shenzhen km

# 获取范围内所在的城市 
georadius china:city 110 30 10000 km

发布和订阅

1、简介

  • 概述:Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息

2、相关命令

功能命令
订阅通道subscribe channel
发布消息publish channel message
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值