Redis是一个开源的、内存数据结构存储中间件,可以用作数据库,缓存,和消息代理。

不是普通的key-value存储,Redis支持strings字符串,hashes字典, lists列表,sets集合,sorted sets有序集合等数据结构,

还提供范围查找,bitmaps位图,HyperLogLog,geospatial 地理空间索引,和流。

Redis支持同步,Lua脚本, LRU淘汰策略,事务,数据持久化,通过Sentinel哨兵模式和Cluster集群自动分片存储实现高可用性和扩展性。Redis基于内存,减少磁盘I/O性能造成的瓶颈,使用单线程,减少串行控制的开销,比Memcache速度快,支持更多数据类型和数据的持久化。主要用于小数据量的高性能的操作和运算,有很多的应用场景。

Redis key值不宜过长,因为key比较和查找会耗费更多,也不宜过短,命名最好有好的可读性,例如使用.或者-拼接起多个单词作为一个key值,如user:12345:buy-book,key最大512MB。

1、Strings 字符串

将字符串作为value,不能超过512MB,可以缓存页面,序列化后的对象。

set key value 支持set赋值操作,key存在的情况下,重新赋值,也可以在set key value后加额外的参数nx,或者xx,可以实现只有在不存在,或者存在key的情况下进行set赋值操作,

还可以进行incr,incrby,decr,decrby原子增加/减少的操作,也就是读-增加/减少-写是一个整体的操作,实现计数器功能

2、Lists 列表

Redis 列表为一组有序元素,底层实现为Linked List链表,往列表里添加元素的速度很快。

lpush key value1 在队首添加元素,rpush key value2队尾添加元素;

lrange key 0 -1找出指定索引位置的列表元素,lpop key, rpop key从队首,队尾删除一个元素;

ltrim key 0 9,只保留10个元素,其他的删除掉;

可以存储社交网站上用户最新发布的动态,帖子,博客等,提升网站的访问速度;将列表元素限定在指定长度;

也可以用做两个进程通信,例如消息队列的生产和消费,lpush key 和brpop key n结合使用。

当删除最后一个元素时,列表也删除了。

3、Hashes 字典

方便存储对象信息,并且对象的属性个数没有实际限制。

hmset user:123 name Alice address Beijing, 往key中添加多个字段

hget user:123 name,从key中提取name字段

hmget user:123  name address,读取name,address两个字段

4、Sets 集合

表示一组无序不重复的元素的集合

sadd key Alice, Blair, Cindy, David ,往集合里添加元素

smembers key ,列出集合中的所有元素

sismember key value,判断是否是集合中的元素

scard key,集合元素个数

5、Sorted sets 有序集合

为一组不重复的元素的集合,类似set,只是添加元素的时候,需要同时添加一个浮点型的数值,代表该元素的score,实现有序,

当两个元素的score相同时,根据元素字母顺序的先后判断两个元素的大小。可以实现排行榜。

zadd,zrange,zrevrange,zrangebyscore,zremrangebyscore, zrank, zrevrank

Redis 基本数据类型和使用相关推荐

  1. Redis的数据类型以及每种数据类型的使用场景

    人就是很奇怪的动物,很简单的问题往往大家都容易忽略,当我们在使用分布式缓存Redis的时候,一个最简单的问题往往被人忽略,Redis的数据类型以及每种数据类型的使用场景是什么? 是不是觉得这个问题很基 ...

  2. redis数据类型_认识Redis与Redis的数据类型

    本文作为Redis的入门教程,旨在让大家对Redis有一个概念性和整体性的认识,并且可以快速上手,为深入Redis打下基础. 文章概要: 1. Redis的介绍 2. Redis与其他数据库的对比 3 ...

  3. redis 读取mysql数据类型_认识Redis与Redis的数据类型

    本文作为Redis的入门教程,旨在让大家对Redis有一个概念性和整体性的认识,并且可以快速上手,为深入Redis打下基础. 文章概要: 1. Redis的介绍 2. Redis与其他数据库的对比 3 ...

  4. 【Redis】14.Redis高级数据类型Bitmaps、HyperLogLog、GEO

    [Redis]14.Redis高级数据类型Bitmaps.HyperLogLog.GEO Bitmaps:用比特位进行快速的状态统计 Bitmaps基本操作 Bitmaps不是一个新的数据类型,而是s ...

  5. redis常用数据类型的场景,你真的用对了么?

    关注微信公众号"虾米聊吧",每天更新一篇技术文章,文章内容涵盖架构师成长必经之路应掌握的技术,一起学习,一起交流. redis常用数据类型的场景,你真的用对了么? redis常用数 ...

  6. note.. redis五大数据类型

    redis 五大数据类型使用 nosql介绍,由来 什么是nosql 阿里巴巴的架构 nosql 四大分类 redis入门 概述 redis 安装 (docker) 基础的知识 redis五大数据类型 ...

  7. redis基本数据类型之String

    redis基本数据类型之String redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet String String类型是包含很多种类型的特殊类型,并且是二进制安全 ...

  8. Redis常见数据类型_Redis通用指令

    Redis常见数据类型 redis本身就是一个Map结构, 所有数据都采用key:value的形式, redis中的数据类型指的是value的类型, key部分永远是字符串 string(类似Java ...

  9. Redis面试常问-- Redis常用数据类型

    Redis常用数据类型 http://www.redis.cn/

  10. 【重难点】【Redis 01】为什么使用 Redis、Redis 的线程模型、Redis 的数据类型及其底层数据结构

    [重难点][Redis 01]为什么使用 Redis.Redis 的线程模型.Redis 的数据类型及其底层数据结构 文章目录 [重难点][Redis 01]为什么使用 Redis.Redis 的线程 ...

最新文章

  1. ​两院院士评选“2021年中国/世界十大科技进展新闻”揭晓
  2. 如何编写无法维护的代码_编写可维护的前端代码
  3. 有趣、好玩、有料的网站收藏
  4. xp下安装redmine 2.4.3
  5. Android 6.0 动态权限申请
  6. matlab三位画图_matlab 3D绘图详解(示例代码)
  7. java obervable_设计模式--观察者模式初探和java Observable模式
  8. cookie里面用到的关键字_Java的理解角度-关键字篇
  9. 计算机的论文初稿要交什么,论文初稿
  10. 计算机主板电池拆卸,主板电池没电了会怎么样 电脑主板电池怎么拆换【详解】...
  11. matlab 密集,matlab – 全局和parfor
  12. DNS解析异常问题排查
  13. ASUS BIOS开启CPU虚拟化
  14. Laravel-Vue开发初探二:Inertia拾遗
  15. Programming C#.Classes and Objects.传递参数
  16. GCC NOT FOUNT
  17. EXTJS入门教程及其框架搭建
  18. android蓝牙传输文件到mysql_蓝牙opp文件发送过程剖析
  19. rabbitmq坑点与异常处理
  20. 程序人生 - 程序员学习新技术是要看书还是看视频?

热门文章

  1. logback logback.xml 常用配置详解
  2. Android:QQ登录页面
  3. python 强类型 弱类型_强类型、弱类型
  4. 扦插技术图解_玫瑰花扦插方法及图解
  5. UE3 内存使用和分析
  6. git subtree 管理项目子模块
  7. java - 抽象类、接口、内部类
  8. SecureCRT session 的迁移
  9. iOS - UIRefreshControl 刷新数据
  10. OUTLOOK 的PST文件和OST文件的区别