Redis破障之路(二)Redis安装和基本数据结构

从源码上聊聊Redis-String、List的结构实现 本文的数据类型只讲底层结构和部分机制,不讲具体的使用,使用的话自行bing,但是会提一些应用场景。 阅读详情

1、安装Redis

Redis6.0在2020年已经发布,所以我们安装Redis3.0。😂

1.1、在Linux上安装Redis

我们在CentOS上安装Redis。常见的的有三种安装方式:

  • yum/apt软件管理软件安装
  • 源码的方式进行安装
  • 容器化安装

我们这里选择第二种方式:

  • 1)下载Redis指定版本的源码压缩包到当前目录

复制代码

wget http://download.redis.io/releases/redis-3.0.7.tar.gz
  • 2)解压缩Redis源码压缩包

复制代码

tar xzf redis-3.0.7.tar.gz
  • 3)建立一个redis目录的软连接,指向redis-3.0.7

复制代码

ln -s redis-3.0.7 redis
  • 4)进入redis目录

复制代码

 cd redis
  • 5)编译(编译之前确保操作系统已经安装gcc)

复制代码

 make
  • 6)安装

复制代码

make install

最后可以执行redis-cli–v查看Redis的版本

redis版本

1.2、启动Redis

有三种方法启动Redis:默认配置、运行配置、配置文件启动。

我们这里用默认配置的方式启动Redis:

复制代码

redis-server

redis启动

一般在生产环境会使用配置文件启动的方式。

1.3、Redis命令行客户端

Redis服务已经启动,现在使用redis-cli来连接。

复制代码

redis-cli -h 127.0.0.1 -p 6379

redis cli

2、Redis基本数据结构

Redis 有 5 种基础数据结构,分别为:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。

Redis基本数据结构

2.1、字符串

字符串类型是Redis最基础的数据结构。所有的键都是字符串类型,

Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value 的结构不一样。

key-value

而且其他几种数据结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习奠定基础。

除了上图描述简单的字符串,字符串类型的值也可以是复杂的字符串(例如JSON、XML)、数字 (整数、浮点数),甚至是二进制(图片、音频、视频),但是值最大不能 超过512MB。

字符串类型

2.1.1、命令

  • 设置值

复制代码

set key value [ex seconds] [px milliseconds] [nx|xx]

下面操作设置键为Hello,值为World的键值对,返回结果为OK代表设置成功:

复制代码

127.0.0.1:6379> set Hello World 
OK

set命令有几个选项:

  • ex seconds:为键设置秒级过期时间。

  • px milliseconds:为键设置毫秒级过期时间。

  • nx:键必须不存在,才可以设置成功,用于添加。

  • xx:与nx相反,键必须存在,才可以设置成功,用于更新。

  • 获取值

复制代码

get key

下面操作获取键Hello的值:

复制代码

127.0.0.1:6379> get Hello
"World"

如果要获取的键不存在,则返回nil(空):

复制代码

127.0.0.1:6379> get some
(nil)
  • 批量设置值

复制代码

mset key value [key value ...]

可以批量对多个字符串进行读写,节省网络耗时开销。

下面操作通过mset命令一次性设置4个键值对:

复制代码

127.0.0.1:6379> mset a 1 b 2 c 3 d 4 
OK
  • 批量获取值

复制代码

mget key [key ...] 

下面操作批量获取了键a、b、c、d的值:

复制代码

127.0.0.1:6379> mget a b c d
1) "1"
2) "2"
3) "3"
4) "4"
  • 计数

复制代码

incr key 

incr命令用于对值做自增操作,返回结果分为三种情况:

  • 值不是整数,返回错误。

  • 值是整数,返回自增后的结果。

  • 键不存在,按照值为0自增,返回结果为1。

复制代码

127.0.0.1:6379>  set age 18
OK
127.0.0.1:6379> incr age
(integer) 19

除了incr命令,Redis提供了decr(自减)、incrby(自增指定数字)、 decrby(自减指定数字)、incrbyfloat(自增浮点数)。

2.1.2、应用场景

字符串可以说是Redis应用最广泛的数据结构,我们来看一下在实际的开发中一些典型的应用场景。

2.1.2.1、缓存功能

下图示比较典型的缓存使用场景,其中Redis作为缓存层,MySQL作为存储层,绝大部分请求的数据都是从Redis中获取。由于Redis具有支撑高并发的特性,所以缓存通常能起到加速读写和降低后端压力的作用。

缓存示意图

2.1.2.2、计数

许多应用都会使用Redis作为计数的基础工具,它可以实现快速计数、 查询缓存的功能,同时数据可以异步落地到其他数据源。例如记录文章的阅读次数。

2.1.2.3、共享Session

用于分布式应用的Session共享,保证用户登录一次即可访问所有服务。

Session共享

2.1.2.4、分布式锁

利用setnx命令可以实现分布式锁,由于Redis的单线程命令处理机制,如果有多个客户端同时执行setnx key value, 根据setnx的特性只有一个客户端能设置成功,所以setnx可以作为分布式锁的一种实现方案。

以下是最简单的Redis分布式锁实现示意图:

最简版Redis分布式锁

2.2、哈希

Redis 的字典和 Java 语言里面的 HashMap类似。在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},...{fieldN,valueN}}

hash示意图

2.2.1、命令

  • 设置值

复制代码

hset key field value

下面为user:1添加一对field-value:

复制代码

127.0.0.1:6379> hset user:1 name tom 
(integer) 1

如果设置成功会返回1,反之会返回0。此外Redis提供了hsetnx命令,它们的关系就像set和setnx命令一样,只不过作用域由键变为field。

  • 获取值

复制代码

hget key field 

获取user:1的name域(属性)对应的值:

复制代码

127.0.0.1:6379> hget user:1 name 
"tom"
  • 删除field

复制代码

hdel key field [field ...]

hdel会删除一个或多个field,返回结果为成功删除field的个数,例如:

复制代码

127.0.0.1:6379> hdel user:1 name 
(integer) 1 
127.0.0.1:6379> hdel user:1 age 
(integer) 0
  • 批量设置或获取field-value

复制代码

hmget key field [field ...] 
hmset key field value [field value ...]

hmset和hmget分别是批量设置和获取field-value,hmset需要的参数是key和多对field-value,hmget需要的参数是key和多个field。例如:

复制代码

127.0.0.1:6379> hmset user:1 name mike age 12 city tianjin 
OK
127.0.0.1:6379> hmget user:1 name city 
1) "mike" 
2) "tianjin"

2.2.2、应用场景

2.2.2.1、存储对象

hash的filed-value的结构非常适合用来存储对象,field用来存储属性名称,value用来存储属性值。在一些客户端里也提供了json序列化器。

Redis存储对象

2.3、列表

Redis 的列表类似于 Java 语言里面的 LinkedList,同样地list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为O(n)。

那么,同样地,list也可以充当栈和队列的角色。

例如,在list两端的插入和弹出,可以模拟栈的操作:

list模拟栈的插入弹出

列表类型有两个特点:第一、列表中的元素是有序的,这就意味着可以通过索引下标获取某个元素或者某个范围内的元素列表。第二、列表中的元素可以是重复的。

2.3.1、命令

列表主要有5种操作类型:

操作类型操作
添加rpush lpush linsert
查找lrange lindex llen
删除lpop rpop lren ltrim
修改lset
阻塞操作blpop brpop
  • 添加操作

从右边插入元素

复制代码

rpush key value [value ...]

下面代码从右向左插入元素c、b、a:

复制代码

127.0.0. 1:6379> rpush listkey c b a 
(integer) 3

lrange0-1命令可以从左到右获取列表的所有元素:

复制代码

127.0.0.1:6379> lrange listkey 0 -1 
1) "c" 
2) "b" 
3) "a"

从左边插入元素类似,不再赘述

  • 向某个元素前或者后插入元素

复制代码

linsert key before|after pivot value

linsert命令会从列表中找到等于pivot的元素,在其前(before)或者后 (after)插入一个新的元素value,例如下面操作会在列表的元素b前插入 java:

复制代码

127.0.0.1:6379> linsert listkey before b java 
(integer) 4

返回结果为4,代表当前命令的长度,当前列表变为:

复制代码

127.0.0.1:6379> lrange listkey 0 -1 
1) "c" 
2) "java" 
3) "b" 
4) "a"
  • 查找

获取指定范围内的元素列表

复制代码

lrange key start end

lrange操作会获取列表指定索引范围所有的元素。

例如想获取列表的第2到第4个元素:

复制代码

127.0.0.1:6379> lrange listkey 1 3 
1) "java" 
2) "b" 
3) "a"

获取列表指定索引下标的元素

复制代码

lindex key index

例如当前列表最后一个元素为a:

复制代码

127.0.0.1:6379> lindex listkey -1 
"a"

获取列表长度

复制代码

llen key

例如,下面示例当前列表长度为4:

复制代码

127.0.0.1:6379> llen listkey 
(integer) 4
  • 删除

从列表左侧弹出元素

复制代码

lpop key

从列表右侧弹出

复制代码

rpop key

删除指定元素

复制代码

lrem key count value
  • 修改

复制代码

lset key index newValue
  • 阻塞操作

阻塞式弹出如下:

复制代码

blpop key [key ...] timeout 
brpop key [key ...] timeout

blpop和brpop是lpop和rpop的阻塞版本,它们除了弹出方向不同,使用方法基本相同。

2.3.2、应用场景

2.3.2.1、消息队列

Redis的lpush+brpop命令组合即可实现阻塞队列,生产客户端使用lrpush从列表左侧插入元素,多个消费者客户端使用brpop命令阻塞式的“抢”列表尾部的元素,多个客户端保证了消费的负载均衡和高可用性。

Redis消息队列模型

list可以灵活组合,在不同的场景使用,总结如下:

  • lpush+lpop=Stack(栈)

  • lpush+rpop=Queue(队列)

  • lpsh+ltrim=Capped Collection(有限集合)

  • lpush+brpop=Message Queue(消息队列)

2.4、集合

集合类似Java语言中的HashSet,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。

集合类型

2.4.1、命令

2.4.1.1、集合内操作
  • 添加元素

复制代码

sadd key element [element ...]

无法添加重复元素,添加重复元素会返回0。

  • 删除元素

复制代码

srem key element [element ...]
  • 计算元素个数

复制代码

scard key
  • 从集合随机弹出元素

复制代码

spop key
2.4.1.2、集合间操作
  • 求多个集合的交集

复制代码

sinter key [key ...]
  • 求多个集合的并集

复制代码

suinon key [key ...]
  • 求多个集合的差集

复制代码

sdiff key [key ...]

集合交并差运算

2.4.2、应用场景

2.4.2.1、标签

集合类型比较典型的使用场景是标签(tag)。例如一个用户可能对娱乐、体育比较感兴趣,另一个用户可能对历史、新闻比较感兴趣,这些兴趣点就是标签。有了这些数据就可以得到喜欢同一个标签的人,以及用户的共 同喜好的标签,这些数据对于用户体验以及增强用户黏度比较重要。

2.4.2.2、共同关注

可以利用交集的运算,实现社交社区用户的“共同关注”功能。

2.5、有序集合

zset 可能是 Redis 提供的最为特色的数据结构,它类似于 Java 的 SortedSet 和 HashMap 的结合体,一方面它是一个 set,保证了内部value 的唯一性,另一方面它可以给每个 value 赋予一个 score,代表这个 value 的排序权重。

有序集合

有序集合提供了获取指定score和元素范围查询、计算成员排名等功能,合理的利用有序集合,能帮助

我们在实际开发中解决很多问题。

有序集合中的元素不能重复,但是score可以重复,就和一个班里的同学学号不能重复,但是考试成绩可以相同。

2.5.1、命令

2.5.1.1、集合内
  • 添加成员

复制代码

zadd key score member [score member ...]

下面操作向有序集合user:rank添加用户李四和他的score250:

复制代码

127.0.0.1:6379> zadd user:ranking 250 李四
(integer) 1
  • 计算成员个数

复制代码

zcard key
  • 计算某个成员的score

复制代码

zscore key member
  • 计算成员的排名

复制代码

zrank key member zrevrank key member
  • 删除成员

复制代码

zrem key member [member ...]
2.5.1.2、集合间的操作
  • 交集

复制代码

zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
  • 并集

复制代码

zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]

2.5.2、应用场景

有序集合比较适合用于需要排行的地方。

2.5.2.1、用户点赞统计

可以用于统计博客、视频网站等作品的点赞数,可以根据点赞数对作品进行排行。

3、基本数据类型内部编码

通过上面的介绍,我们已经了解了五种基本数据结构,既然叫数据结构,那么一定是有内部的组成,就比如Java中的String由char或者byte数组组成。我们这里简单了解一下Redis五种基本数据结构的内部编码。

Redis数据结构和内部编码

3.1、字符串

字符串类型的内部编码有3种:

  • int:8个字节的长整型。

  • embstr:小于等于39个字节的字符串。

  • raw:大于39个字节的字符串。

embstr&raw

3.2、哈希

哈希类型的内部编码有两种:

  • ziplist(压缩列表):当哈希类型元素个数小于hash-max-ziplist-entries 配置(默认512个)、同时所有值都小于hash-max-ziplist-value配置(默认64 字节)时,Redis会使用ziplist作为哈希的内部实现,ziplist使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀。

  • hashtable(哈希表):当哈希类型无法满足ziplist的条件时,Redis会使用hashtable作为哈希的内部实现,因为此时ziplist的读写效率会下降,而hashtable的读写时间复杂度为O(1)。

3.3、列表

列表类型的内部编码有两种。

  • ziplist(压缩列表):当列表的元素个数小于list-max-ziplist-entries配置 (默认512个),同时列表中每个元素的值都小于list-max-ziplist-value配置时 (默认64字节),Redis会选用ziplist来作为列表的内部实现来减少内存的使 用。

  • linkedlist(链表):当列表类型无法满足ziplist的条件时,Redis会使用linkedlist作为列表的内部实现。

3.4、集合

集合类型的内部编码有两种:

  • intset(整数集合):当集合中的元素都是整数且元素个数小于set-max- intset-entries配置(默认512个)时,Redis会选用intset来作为集合的内部实现,从而减少内存的使用。

  • hashtable(哈希表):当集合类型无法满足intset的条件时,Redis会使用hashtable作为集合的内部实现。

3.5、有序集合

有序集合类型的内部编码有两种:

  • ziplist(压缩列表):当有序集合的元素个数小于zset-max-ziplist- entries配置(默认128个),同时每个元素的值都小于zset-max-ziplist-value配置(默认64字节)时,Redis会用ziplist来作为有序集合的内部实现,ziplist 可以有效减少内存的使用。

  • skiplist(跳跃表):当ziplist条件不满足时,有序集合会使用skiplist作为内部实现,因为此时ziplist的读写效率会下降。

跳跃表

这里只是简单地了解一下,未来如果有机会,会再进一步学习Redis的实现来更深入地了解Redsi基本数据结构的内部原理。

解Bug之路-串包Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug。现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后的工作中能够少踩点坑。 串包Bug现场 前置故障Redis超时 由于某个系统大量的hget、hset操作将Redis拖垮,通过监控发现Redis的CPU和IO有大量的尖刺,CPU示意图下图所示: 输入图片说明 CPU达到了100%,导致很多Redis请求处理不及时,其它业务系统都频繁爆出readTimeOut。此时,紧急将这个做大量hget、hse 阅读详情

相关推荐

redisclient-2.5

redis javaAPI开发时所需的jar包,jedis-jedis-2.5.1.jar和commons-pool2-2.2.jar

Redis串包 bug、get(key)返回的数据为“ok”

根据redis的key获取值为ok

qq_61367293的博客 2294

在ubuntu上安装FastSufer【本机安装】

其实说是安装,只需要将文件下载并解压即可。推荐教程注意版本:在下面这个网址根据你的操作系统找到最新的版本安装。比如我的操作系统为Ubuntu 20.04.5,因此我安装ubuntu20-7.4.1的freesurfer打开~/.bashrc在~/.bashrc文件中添加以下三行关闭~/.bashrc更新~/.bashrc安装tcsh注意每次进入终端使用freesurfer时需要输入FREESURFER_HOME路径根据freesurfer的文件夹所在位置自己修改。

Xingwen_future的博客 2005

【Redis破障之路】二:Redis安装和基本数据结构

Redis破障之路第二篇,在Linux上安装Redis,学习五种Redis基本数据结构,掌握基本命令和常用场景,了解内部编码。

三分恶的博客 1845

Delphi开发者必备:CEF4Delphi跨平台浏览器嵌入实战指南(含Lazarus适配)

本文详细介绍了Delphi开发者如何利用CEF4Delphi实现跨平台浏览器嵌入,包括环境配置、Lazarus适配、ARM架构优化及Firemonkey集成等实战技巧。通过Chromium引擎的强大功能,开发者可以轻松为传统桌面应用添加现代浏览器特性,提升多平台开发效率。

weixin_29233333的博客 226

MSP430开发入门:手把手教你用IAR EW430从建工程到烧录调试(附F5529配置)

本文详细介绍了如何使用IAR Embedded Workbench(EW430)进行MSP430F5529开发板的嵌入式开发,从环境搭建、工程配置到硬件调试全流程。通过实战示例和关键配置技巧,帮助开发者快速掌握MSP430开发的核心要点,包括LED控制、定时器使用和低功耗优化等实用技术。

weixin_30240349的博客 391

Redis源码-String:Redis String命令、Redis String存储原理、Redis String三种编码类型、Redis字符串SDS源码解析、Redis String应用场景

编码转换在Redis写入数据时完成,且转换过程不可逆,只能从小内存编码向大内存编码转换(不包括重新set),重新set虽然在值上是修改或插入,但在Redis看来是重新赋值,这里的编码转换指的修改比如说拼接字符串、自增这种,非set的改值操作。Redis的key是字符类型,即String,最大可以用得到是512M,那么它的value字符类型,也是String,最大也是512M。中文标点占三个字节,英文标点占一个字节。1,ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。.

郝开的博客 1818

UE5 Metahuman与Blender手动绑定:ARKit面部动画实战对比

面部动画是角色动画领域的核心技术,其核心原理在于通过驱动面部骨骼或混合形状来模拟真实肌肉运动,从而赋予数字角色生命力。这项技术的价值在于极大地提升了虚拟角色的表现力与沉浸感,广泛应用于游戏开发、影视制作、虚拟现实和实时交互应用。在技术实现路径上,开发者常面临工业化集成方案与高度自定义方案的选择。本文聚焦于使用行业标准的ARKit 52个面部混合形状数据,深度对比了虚幻引擎Metahuman的工业化流程与Blender手动绑定方案在视觉保真度、工作流效率、性能开销和扩展性上的差异,为不同项目规模与技术需求的团

weixin_33901926的博客 449

Windows 环境下 Redis 的安装和基本使用

Windows 环境下 Redis 的安装和基本使用

ProgramNovice的博客 4352

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华

KJ.JK 961

全球APN信息汇总

全球APN信息,电信APN,移动APN,联通APN,台湾APN,马来西亚APN,俄罗斯APN,日本APN,泰国APN,美国APN,英国APN,法国APN,德国APN,意大利APN,葡萄牙APN,土耳其APN,荷兰APN,丹麦APN,比利时APN,爱尔兰APN,新加坡APN,越南APN,老挝APN,菲律宾APN,印尼APN,泰国APN,柬埔寨APN,巴基斯坦APN,印度APN,奥地利APN,保加利亚APN,捷克APN,立陶宛APN,罗马尼亚APN,挪威APN,希腊APN,匈牙利APN,瑞士APN,乌克兰APN

renkai721的专栏 2796

【Redis破障之路】四:Jedis基本使用

标题本来想叫:“实习生小姐姐学不会Jedis,哭唧唧地气跑了”,嘿嘿。

三分恶的博客 3081

Arduino、ESP32驱动TEMT6000传感器(光照传感器篇)

TEMT6000是一个三极管类型的光敏传感器,其光照强度和基极的电流成正比。用起来也相当简单,可以简单的连接该传感器的基极到模拟电压输入,通过简单的检测电压值就可以判断当前的光照强度。

不脱发的程序猿 4231

【Redis基础篇】超详细♥Redis安装教程、5种常用数据结构和常见命令、Jedis和SpringDataRedis的使用

Redis是典型的key-value数据库,key一般是字符串,而value包含很多不同的数据类型:Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网()可以查看到不同的命令:不同类型的命令称为一个group,我们也可以通过help命令来查看各种不同group的命令:接下来,我们就学习常见的五种基本数据类型的相关命令。2、Redis通用命令KEYS:查看符合模板的所有key。keys *效率低,redis单线程,不建议在生产环境设备上使用)DEL:删除一个或多个指定的key。

实用技术干货分享⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄对您有用的话请点个关注吧~ 3645

Qt软件开发: 开发MQTT客户端软件,模拟硬件登录各大主流MQTT平台完成通信

此软件是使用QT编写MQTT客户端(根据mqtt官方文档3.1.1,自己实现过程代码,没有使用其他库,稳定,方便移植),模拟硬件登录各大主流的MQTT物联网服务器,完成主题订阅、发布等操作,实现数据通信交互。 已经测试OneNET、阿里云IOT、华为云IOT、百度IOT、电信IOT、原子云IOT等等常用的物联网云平台,都可以正常实现数据通信,只要云平台支持标准MQTT协议都可以使用此软件进行登录测试。 特别是大家没有硬件,想测试与MQTT物联网云服务器通信的,此软件是非常的方便。使用简单,比官方的软件操作

1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Redis】Redis安装教程&基本操作语法

Redis的Linux和window的安装教程&基本操作语法(String、Hash、List、Set、sort set)

万维网连五洲,二进制写尽天下事,喜欢结识新伙伴寻找志同道合的朋友,欢迎一起探讨学习 5224

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

redis基本数据结构

本篇文章记录黑马redis笔记-基本数据结构

pedestrian_h的博客 1873

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【Redis破障之路】一:强大的Redis

Redis破障之路第一篇,一起走近当下最流行的NoSQL——Redis,介绍Redis的主要应用场景和主要的演进。

三分恶的博客 1606

Redis破障之路(四)Jedis基本使用

在前面我们已经学习了Redis命令行客户端redis-cli的使用,接下来我们了解一下Redis基于Java编程语言的客户端。在Java语言体系下,有三个常用的Redis客户端JedisRedissonLettuce。三者各有特点,各有适用的场景。Jedis:Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;

mifffy_java的博客 534

在kali linux中redis的配置和基本使用

关于redis再kali linux中的基本配置和使用

m0_59145816的博客 2027
上一篇: Redis破障之路(一)强大的Redis
下一篇: Redis破障之路(三)Redis单线程架构
加班不秃顶
博客等级 码龄7年 1822粉丝 599原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值