Java@还不懂Redis是什么?一文带你深入Redis基本结构,准备向开发进军
文章图片
文章图片
前言Redis是互联网技术领域使用最为广泛的存储中间件 , 它是「Remote Dictionary Service」的首字母缩写 , 也就是「远程字典服务」 。 Redis 以其超高的性能、完美的文档、简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评 。 国内外很多大型互联网公司都在使用Redis 比如Twitter、 YouPorn、 暴雪娱乐、Github、 StackOverflow、 腾讯、阿里、京东、华为、新浪微博等等 , 很多中小型公司也都有应用 。 也可以说 , 对Redis 的了解和应用实践已成为当下中高级后端开发者绕不开的必备技能 。
Redis安装体验Redis需要使用Linux或者Mac环境 , 如果是Windows可以考虑使用虚拟机 。
主要方式有四种:
使用Docker安装 。 通过Github源码编译 。 直接安装apt-get install(Ubuntu)、 yum instal(RedHat)或者brew install(Mac) 。 如果不想安装操作 , 也可以使用网页版的Web Redis直接体验 。 具体操作如下:
Docker方式
#拉取redis镜像
> docker pull redis .
#运行redis容器
〉docker run - name myredis -d -p6379:6379 redis .
#执行容器中的redis-cli 可以直接使用命令行操作redis
> docker exec -it myredis redis-cli
Github源码编译方式
#下载源码
> git clone --branch 2.8 - -depth 1 git@gi thub. com:antirez/redis. git
> cd redis
#编译
> make
> cd src
#运行服务器 , daemonize表示在后台运行
> . /redis-server - daemonize yes
#运行命令行
> . /redis-cli
直接安装方式
#mac
> brew install redis
# ubuntu
〉apt- get install redis
# redhat
〉yum install redis
#运行客户端
> redis-cli
Redis基础数据结构Redis有5种基础数据结构 , 分别为: string (字符串)、list (列表)、set (集合)、hash (哈希)和zset(有序集合) 。 熟练掌握这5种基本数据结构的使用是Redis 知识最基础也最重要的部分 , 它也是在Redis面试题中问到最多的内容 。
一、string (字符串)
字符串 string 是 Redis 最简单的数据结构 。 Redis 所有的数据结构都是以唯一的 key 字符串作为名称 , 然后通过这个唯一 key 值来获取相应的 value 数据 。 不同类型的数据结 构的差异就在于 value 的结构不一样 。
字符串结构使用非常广泛 , 一个常见的用途就是缓存用户信息 。 我们将用户信息结构体使用 JSON 序列化成字符串 , 然后将序列化后的字符串塞进 Redis 来缓存 。 同样 , 取用户 信息会经过一次反序列化的过程 。
Redis 的字符串是动态字符串 , 是可以修改的字符串 , 内部结构实现上类似于 Java 的 ArrayList , 采用预分配冗余空间的方式来减少内存的频繁分配 , 如图中所示 , 内部为当前字 符串实际分配的空间 capacity 一般要高于实际字符串长度 len 。 当字符串长度小于 1M 时 ,扩容都是加倍现有的空间 , 如果超过 1M , 扩容时一次只会多扩 1M 的空间 。 需要注意的是 字符串最大长度为 512M 。
二、list (列表)
Redis 的列表相当于 Java 语言里面的 LinkedList , 注意它是链表而不是数组 。 这意味着 list 的插入和删除操作非常快 , 时间复杂度为 O(1) , 但是索引定位很慢 , 时间复杂度为 O(n) , 这点让人非常意外 。
推荐阅读
- 「周鸿祎」周鸿祎:能力差的往往会成为公司的高管,背后的逻辑一般人看不懂
- 稳糖|难怪血糖一直测不准,记住选对不选贵很重要,不懂怎么选择血糖仪
- 科技俱乐部菌|确实让人看不懂,中国式父亲不称职?他表达爱的方式
- 潮车行天下|能否开着远光灯?老司机:不懂的把车扔了吧,夜间在高速公路行驶
- 「阿里巴巴」腾讯、阿里面试Redis真题精选36道,配合项目实战,助你大厂无忧
- Java@学完Java能干什么?看完好好学吧
- 华为荣耀:华为“618”销量最好的3款千元机:一款意料之中,两款我看不懂
- Java进阶指南|Redis存储Key设计实现方式,Redis实战和核心原理详解:Redis简介
- 苹果▲一觉醒来跨越很大!iOS迎来史上最大版本,网友:不懂苹果的操作
- 「美团」就是不进厂?美团2个月增加58万骑手,曹德旺表示搞不懂年轻人!