前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis知识点速查

Redis知识点速查

作者头像
linxinzhe
发布2018-04-10 14:35:43
7320
发布2018-04-10 14:35:43
举报
文章被收录于专栏:林欣哲林欣哲

NoSQL概述

为什么需要NoSQL

  • 高并发读写
  • 海量数据的高效率存储和访问
  • 高可扩展性和高可用性

NoSQL数据库分类

  • 键值存储。Redis
  • 列存储。HBase
  • 文档数据库。MongoDB
  • 图形数据库。

NoSQL特点

  • 易扩展
  • 大数据量,高性能
  • 灵活的数据模型
  • 高可用

Redis概述

支持的键值数据类型

  • 字符串(String)
  • 散列(hash)
  • 列表(list)
  • 集合(set)
  • 有序字符串集合(sorted set)
Key
  • 不要过长
  • 不要过短
  • 统一的命名规范
存储String
  • 底层是二进制存储的。二进制安全,存入和获取的数据相同
  • Value最大512MB
命令
  • 赋值 set
  • 取值 get
  • 删除 del
  • 数值增减 incrdecrincrby(+数字)decrby(++数字)
  • 扩展命令 append(返回的事字符串长度)
存储Hash
  • 赋值
    • hset myhash username jack
    • hmset myhash2 username rose age21
  • 取值
    • hget myhash username
    • hmget myhash username age
    • hgetall myhash
  • 删除
    • hdel myhash2 username age
  • 增加数字
    • hincrby myhash age5
  • 存在
    • hexists myhash username
  • 得到key,value,和长度
    • hlen myhash
    • hkeys myhash
    • hvals myhash
存储list
  • ArrayList数组存储
  • LinkedList双向链表存储
  • 双向链表增加删除数据
  • 常用命令:
    • lpushx mylist3 ax表示不存在不插入
    • linsert mylist before b11在b前插入11
    • rpoplpush mylist5 mylist6从5右边弹出押入6左边
    • lset mylist3mmm相当于list[3]=mmm
    • lrem mylist23从头到尾,删除2个3
    • lrem mylist-21从后到前,删除2个1
    • llen mylist
    • lrange mylist05看0到5的元素,可为负数表示从右边数起
    • lpop mylist头部弹出
    • rpop mylist尾部弹出
    • lpush mylist a b c
    • rpush mylist a b c
    • 两端添加
    • 两端弹出
    • 查看列表
    • 获取列表元素个数
    • 移除
    • 设置
    • 扩展命令
  • 场景:
    • 生产者消费者,队列
存储Set
  • sadd myset a b c
  • srem myset a b
  • smembers myset
  • sismember myset a
  • sdiff mya1 myb1
  • sinter mya2 myb2
  • sunion mya3 myb3
  • scard myset集合内数量
  • srandmember myset
  • sdiffstore my1 mya1 myb1把mya1和myb1差集存入mya1,类似的 sunionstoresinterstore
  • 场景:
    • 追踪唯一性的
    • 维护数据对象之间的关联
存储Sorted-Set

有序的集合

  • zadd mysort70a80b90c分数+实际元素,元素存在的话则用新的分数替代原来的分数
  • zscore mysort a 获取分数
  • zcard mysort 长度
  • zrange mysort0-1
  • zreverange
  • zremrangebyrank mysort04
  • zremrangebyscore mysort80100
  • zadd mysort
  • zrangebyscore mysore0100withscores limit02
  • zincrby mysort3ls
  • 场景:
    • 大型在线游戏积分排行榜
    • 检索索引数据
通用操作
  • 查看key
    • keys*
    • kyesmy?
  • exists
  • get
  • rename company newcompany
  • expire newcompany1000过期时间
  • ttl newcompany
  • type newcompany
  • type mylist

应用场景

  • 缓存
  • 任务队列
  • 网站访问统计
  • 数据过期处理
  • 应用排行榜
  • 分布式集群架构中的session分离

客户端

Java语言用Jedis

事务

  • multi开启事务, discard回滚, exec提交。
  • 事务串行,不会做其他事,保证严格原子性。失败后面会继续执行。

持久化

  • RDB按时间间隔持久化到硬盘
  • AOF按日志的记录操作
  • 无持久化
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 林欣哲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NoSQL概述
    • 为什么需要NoSQL
      • NoSQL数据库分类
        • NoSQL特点
        • Redis概述
          • 支持的键值数据类型
            • Key
            • 存储String
            • 存储Hash
            • 存储list
            • 存储Set
            • 存储Sorted-Set
            • 通用操作
          • 应用场景
            • 客户端
              • 事务
                • 持久化
                相关产品与服务
                云数据库 Redis
                腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档