初识Redis

redis是键值型数据库

启动redis服务端 redis-server
启动redis客户端 redis-cli

使用redis有哪些好处

  • 速度快,因为数据在内存中,类似于hashMap, hashMap的优势是查找和操作的时间复杂度都是O(1)
  • 支持多种数据类型
  • 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
  • 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后自动删除。

基础数据结构:

String 字符串
list 队列,栈
set 集合,元素唯一
hash 哈希表
zset 跳表结构,属于有序的set集合

String

  • 数据结构:SDS 简单可变数组,

  • 扩容机制:容量满了会自动扩容,在容量小于1M时,每次翻倍,超过1M每次只增加1M,最多512M

  • 语法:set key value 存储value为字符串类型的数据

    get key根据key获得字符串类型的数据
    mset 一次存储多个键值对
    mget 一次获取多个值
    expire key 设置超时时间(秒)
    ttl 查看某个key剩余的超时时间
    set[ex][nx] ex是为了设置过期时间
    nx含义是不存在key时,set操作才会成功,
    如果key有了,set操作会返回nil(不会覆盖原key)
    incr:针对value是数字时,每次自增1
    incrby:针对value是数字时,每次增n
    应用场景:用于实现redis的分布式锁

list

  • 数据结构:ziplist–当list中数据量很少时,数据连续存储,数组,访问效率高
    quickList–当list中数据量多时,是一个双向链表,空间利用率高
  • 语法:lpush 从左侧向集合添加元素
    rpop 从右侧集合弹出元素
    rpush 从右侧添加元素
    lpop 从左侧弹出元素
    lpush + rpop 行为上是一个队列(先进先出FIFO)
    rpush + lpop
    lpush + lpop 行为上是一个栈(先进后出)
    rpush + rpop
    llen 查看集合长度
    ltrim 对列表进行截取,格式为key start(起始下标) stop(结束下标)
    lindex 按下标获取元素,效率较低,格式 key index(元素下标)
    lrange key start(起始下标) stop(结束下标) 其中-1表示到列表的最后
  • 应用场景:抢购,消息队列

hash

  • 数据结构:hash表(数组+链表)
  • 扩容机制:渐进式扩容,扩容过程中会查询新旧两个hash表,不会影响客户的使用,
    扩容结束才用新的hash表替换掉旧的hash表。
  • 语法:hset格式 hset key子属性 属性值
    hget格式 hget key子属性
    hgetall
    hlen 查看hash表中有几组属性
    hincrby
    对比字符串 hash 结构可以把一些相关的子属性(key)集中在一起,统一管理
    可以对其中属性进行独立管理,存储消耗上要高于字符串

set(唯一)

  • 数据结构:hash表(数组+链表)只是仅用了其中key,来保证元素的唯一
  • 语法:
    sadd格式:sadd key元素 添加元素
    smembers格式:smembers key 查看所有元素
    sismember格式:sismember key待测试的元素,判断元素是否包含在集合中,
    包含返回1,不包含返回0。
    scard:获取集合大小

zset(唯一并有序)

  • 数据结构:跳跃表(多层的链表结构,减少比较次数)
  • 语法:
    zadd格式:zadd key 得分元素注意默认得分低的排在前面
    zrange格式:zrange key start(起始下标) stop(结束下标)
    zrevrange格式:zrevrange key start(起始下标) stop(结束下标)
    zcard:查看大小
    zscore:查看某个元素的得分,格式:zscore key 元素 返回得分
    zrank:查看某个元素的排名,排名从0开始
    zrangebyscore-inf :给一个分数范围,根据此范围定位符的元素
    zrem:删除集合中的元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值