学习 Redis List(列表)

学习 Redis List(列表)

 

import java.util.List;

import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.connection.RedisListCommands.Position;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

public class TestRedisList {

	private static JedisConnectionFactory getJedisConnectionFactory() {
		JedisConnectionFactory jcf = new JedisConnectionFactory();
		jcf.setHostName("127.0.0.1");
		jcf.setPort(6379);
		jcf.setPassword("123");
		jcf.afterPropertiesSet();
		return jcf;
	}

	private static RedisConnection getRedisConnection() {
		return getJedisConnectionFactory().getConnection();
	}

	public static void main(String[] args) {
		RedisConnection rc = getRedisConnection();
		
//		rc.del("userList".getBytes());
		
		//LPUSH
		long lPush = rc.lPush("userList".getBytes(), 
				"Jim".getBytes(),
				"Tom".getBytes(), 
				"Jack".getBytes(), 
				"Scott".getBytes(), 
				"Rob".getBytes());
		System.out.println("LPUSH [" + lPush + "]");
		
		//LPUSHX
		long lPushX = rc.lPushX("noexists".getBytes(), "test".getBytes());
		System.out.println("LPUSHX [" + lPushX + "]");
		
		//LRANGE
		List<byte[]> lRange = rc.lRange("userList".getBytes(), 0, -1);
		for (byte[] value: lRange) {
			System.out.println(new String(value));
		}
		
		//LPOP
		byte[] lPop = rc.lPop("userList".getBytes());
		System.out.println("LPOP [" + new String(lPop) + "]");
		
		//BLPOP
		List<byte[]> blPop = rc.bLPop(0, "userList".getBytes());
		for (byte[] value : blPop) {
			System.out.println("BLPOP [" + new String(value) + "]");
		}
		//如果 deptList 列表为空,则阻塞,直到等待超时或发现可弹出元素为止。
//		List<byte[]> deptList = rc.bLPop(11110, "deptList".getBytes());
//		for (byte[] value : deptList) {
//			System.out.println("deptList [" + new String(value) + "]");
//		}
//		
//		List<byte[]> twoList = rc.bLPop(11110, "tList".getBytes(), "deptList".getBytes());
//		for (byte[] value : twoList) {
//			System.out.println("twoList [" + new String(value) + "]");
//		}
		
		//RPOP
		byte[] rPop = rc.rPop("userList".getBytes());
		System.out.println("RPOP [" + new String(rPop) + "]");
		
		//BRPOP
		List<byte[]> brPop = rc.bRPop(0, "userList".getBytes());
		for (byte[] value : brPop) {
			System.out.println("BRPOP [" + new String(value) + "]");
		}
		
		//RPOPLPUSH
		byte[] rPopPlPush = rc.rPopLPush("userList".getBytes(), "userList".getBytes());
		System.out.println("RPOPLPUSH [" + new String(rPopPlPush) + "]");
		
//		byte[] twoList = rc.rPopLPush("alist".getBytes(), "blist".getBytes());
//		System.out.println("twoList [" + new String(twoList) + "]");
		
		//LINDEX
		byte[] lIndex = rc.lIndex("userList".getBytes(), 0);
		System.out.println("LINDEX [" + new String(lIndex) + "]");
		
		//LINSERT
		long lInsert = rc.lInsert("userList".getBytes(), Position.AFTER, "Jack".getBytes(), "Green".getBytes());
		System.out.println("LINSERT [" + lInsert + "]");
		
		//LLEN
		long lLen = rc.lLen("userList".getBytes());
		System.out.println("LLEN ["+ lLen + "]");
		
		//LREM
		long lRem = rc.lRem("userList".getBytes(), 1, "Jack".getBytes());
		System.out.println("LREM [" + lRem + "]");
		
		//LSET
		rc.lSet("userList".getBytes(), 1, "newValue".getBytes());
		
		//LTRIM
		rc.lTrim("userList".getBytes(), 1, -1);
		
		//RPUSH 将一个或多个值 value 插入到列表 key 的表尾(最右边)
		long rPush = rc.rPush("newlist".getBytes(), "Jim".getBytes(), "Green".getBytes());
		System.out.println("RPUSH [" + rPush + "]");
		
		//RPUSHX 将值 value 插入到列表 key 的表尾,当且仅当 key 存在并且是一个列表。
		long rPushX = rc.rPushX("newlistb".getBytes(), "Tom".getBytes());
		System.out.println("RPUSHX [" + rPushX + "]");
		
		//BRPOPLPUSH
		byte[] bRPopLpush = rc.bRPopLPush(1000, "newlist".getBytes(), "newlistb".getBytes());
		System.out.println("BRPOPLPUSH [" + new String(bRPopLpush) + "]");
	}

}

 

保姆级教程:用vxe-grid给管理后台加个「智能筛选」功能(支持模糊搜索/多选/范围查询) 本文提供了一份详细的Vxe-Grid智能筛选功能实现教程。通过自定义筛选器渲染,文章逐步指导开发者为后台管理系统添加支持模糊搜索、多选下拉和数值范围查询的智能筛选功能,并分享了性能优化与移动端适配等实战经验。 阅读详情

相关推荐

【技术解析】华为智算中心:昇腾AI算力与无损网络如何驱动大模型训练

本文深入解析了华为智算中心如何通过昇腾AI算力与超融合以太无损网络的协同,驱动千亿参数大模型的高效训练。昇腾NPU提供专用计算引擎,而基于RoCE的无损网络则通过PFC、ECN等技术确保万卡集群间的高带宽、零丢包通信,实现算力利用率最大化,解决大规模AI训练的核心瓶颈。

weixin_29311017的博客 198

Redis指令详解-list相关指令

列举redis中与list相关的指令,包括作用、使用时需要注意的地方等。对于某些基本用不到的指令仅一带而过。

陈海龙的格物之路 426

修勾逃生巨人危机v10.9.9修改版:免广告无限内购与GM工具详解

游戏修改技术是通过对原版游戏程序进行代码层面的调整,实现特定功能的增强或限制解除。其核心原理涉及内存修改、资源替换和API拦截等技术手段,能够有效提升用户体验和测试效率。在移动游戏领域,免广告和无限内购是常见的技术实现方向,通过屏蔽广告SDK调用和修改内购验证逻辑,为用户提供更流畅的游戏体验。这类技术特别适合游戏开发者进行功能测试,以及玩家希望完整体验游戏内容而不受商业模式限制的场景。以修勾逃生巨人危机v10.9.9版本为例,该修改版集成了GM工具开启功能,通过特定操作路径即可激活调试面板,实现了广告去除和

weixin_30855099的博客 2613

如何在Java中操作Redis

这是因为Redis的Key必须是字符串类型,而Java中的对象类型需要进行序列化才能转化为字符串类型。因此,RedisTemplate使用默认的StringRedisSerializer对Key进行序列化,将Java对象转化为字符串类型作为Redis的Key。如果需要自定义Key的序列化方式,可以通过RedisTemplate的setKeySerializer方法设置Key的序列化器。Redisson是一个基于Redis的Java客户端,它提供了许多方便的功能和API来使用Redis。

m0_51791413的博客 2817

利用python爬取东方财富网股吧评论并进行情感分析(一)

利用python爬取东方财富网股吧评论(一) python-东方财富网贴吧文本数据爬取 分享一下写论文时爬数据用到的代码,有什么问题或者改善的建议的话小伙伴们一起评论区讨论。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可以将本地的图片直

YMG521000的博客 1万+

GEE数据融合——Landsat (collection 2,level 2 )4、5、7、8、9长时间序列影像数据融合和视频导出分析

长时间序列影像数据融合是指将Landsat影像数据集合2级2(Level 2)中的4、5、7、8和9这五个卫星的数据进行融合。具体来说,这包括将同一地点的多个卫星影像数据进行处理和整合,以产生一个单一的、具有更高质量的影像产品。在长时间序列影像数据融合中,首先需要对不同卫星的影像数据进行校正,以消除不同卫星之间的光谱差异、辐射度问题和几何纠正误差等。然后,通过使用融合算法,将多个卫星的影像数据进行组合,以生成一张全新的、高质量的合成影像。

此星光明博客 1736

SpringBoot 集成 Redis

1、模拟节点下线:人为模拟,master-6381机器意外宕机,手动shutdown,先对redis集群命令方式,手动验证各种读写命令,6384上位替换原主节点6381。SpringBoot2.X版本,Redis默认的连接池采用Lettuce,当Redis集群节点发生变化后,Lettuce默认是不会刷新节点拓扑。Lettuce是一个Redis的Java驱动包,Lettuce翻译为生菜,没错,就是吃的那种生菜,所以它的Logo长这样。当master宕机主从切换成功,redis手动OK,but 2个经典故障。

一位打工仔的博客 943

仿真学习系列(三十八):Sigrity仿真之单端S参数提取

S 参数(Scattering Parameters)是高速信号分析中最基础也最常用的指标,能够全面表征走线、过孔、连接器等互连结构的高频行为。在 Sigrity PowerSI 中,Model Extraction 是最常用的 S 参数提取方式,适用于高速差分线、单端线、过孔、参考平面等各种拓扑结构。 本节将通过示例讲解如何在 PowerSI 中完成一次完整的 S 参数提取流程,包括:对象选择、端口设置、频率范围配置以及结果查看。掌握此方法后,即可对任意高速网络执行阻抗、插损、回损、串扰分析,为进一步的

案例文章,高速信号 838

Redis学习使用

一、控制台基本命令 进入redis。cmd打开redis后启动redis-cil:redis-cli.exe 进入某个库,select index

furenqiang的博客 669

微信小程序:errno: 1500104, errCode: 10008, errMsg: “writeBLECharacteristicValue:fail:system error, status

微信小程序errno: 1500104, errCode: 10008, errMsg: "writeBLECharacteristicValue:fail:system error, status: UNKNOWN (239)"微信小程序调用蓝牙API,wx.writeBLECharacteristicValue()报错,微信小程序蓝牙写入错误,在开发uniapp微信小程序蓝牙通信功能时报错,蓝牙开发设备控制核心api,微信小程序调用蓝牙API “wx.writeBLECharacteristicValu

✅ 精选推荐文章 3931

用 SAML 2.0 Bearer Assertion 配置 ABAP OAuth 2.0 令牌交换

摘要: SAP系统集成中,身份跨系统传递是关键挑战。OAuth 2.0的SAML 2.0 Bearer Assertion grant机制通过SAML断言换取访问令牌,实现安全身份传递。配置核心在ABAP的SOAUTH2事务码,需绑定可信SAML身份提供商(IdP)并指定访问范围。实际应用中,需确保SSL加密传输,正确配置SAML IdP信任关系,并为OAuth客户端分配专用系统用户。常见问题包括证书不匹配、权限配置不当等,需分层控制权限边界以保障安全。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 837

redis命令详解与使用场景举例——Server(服务器)

BGREWRITEAOF执行一个 AOF文件 重写操作。重写会创建一个当前 AOF 文件的体积优化版本。 即使 BGREWRITEAOF 执行失败,也不会有任何数据丢失,因为旧的 AOF 文件在 BGREWRITEAOF 成功之前不会被修改。 重写操作只会在没有其他持久化工作在后台执行时被触发,也就是说: ● 如果 Redis 的子进程正在执行快照的保存工作,那么 AOF 重写的操作会被预

路漫漫,水迢迢 1535

MIC:最大信息系数

目录 1. 概念 1.1 MIC 1.2 互信息 2.MIC的优点 3. 算法原理 3.1 MIC公式原理 3.2MIC计算步骤 (1)计算最大互信息值 (2)对最大的互信息值进行归一化 (3)选择不同尺度下互信息的最大值作为MIC值 4. 代码实现 6. 其他方法 1. 概念 1.1 MIC MIC,即(Maximal Information...

满腹的小不甘 5万+

Redis学习05——存储字符串列表(list)

Redis学习05存储字符串列表list 一字符串列表list 说明 二两端添加 1 lpush key value1 value2 2 rpush key value1 value2 三查看列表 1 lrange key start end 四两端弹出 1 lpop key 2 rpop key 五获取列表中元素的个数 1 llen key 六其他命令 1 lpushx key value

qiwenmingshiwo的专栏 1220

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Redis学习3--列表键List

列表list 一个列表可以包含一个或多个数量的项item。每个项按照他们被push到列表的位置来排列 每个列表项所在的位置决定了这个像的索引值index,索引从0开始,从列表的左端到右端一次递增, 位于列表最左端表头位置的项的索引为0,而位于列表最右端表尾的索引为N-1,N为列表的长度。 列表包含的项可以出现重复,不必唯一。 从列表的左端push 将一个或以上数

deyu1982的专栏 1889

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

redis学习-14- Redis list列表操作

redis学习-14- Redis list列表操作

时光 1424

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Redis学习3 - 列表(List)

List 操作

隔壁小红馆 719

redis学习:list列表

文章问题导向 redis的list如何操作?使用场景有哪些? 如果你都有了答案,可以忽略本文章,或去redis学习导图寻找更多答案 list操作 列表是简单的字符串列表,按照插入顺序排序,本质是双向链表 即可实现栈,也可实现队列 可以存储重复的值,类似js数组 增加(设置) 往头部添加(左) lpush key value 往尾部添加(右) rpush key value 插入:在targetValue(list中的值)之前或之后插入 linsert key before/after targ

weixin_44828005的博客 183

Redis学习笔记-List列表(1)

本文介绍了Redis列表(List)类型的特点及常用命令。列表是有序的字符串集合,支持元素重复和索引访问。文章详细讲解了LPUSH/RPUSH(头插/尾插)、LPOP/RPOP(头删/尾删)、LRANGE(获取区间元素)、LINDEX(获取指定位置元素)等基础命令及其时间复杂度。还介绍了阻塞版本的BLPOP/BRPOP命令,这些命令在没有元素时会阻塞等待而非立即返回。列表适用于需要有序存储和快速两端操作的场景,为Redis提供了重要的数据结构支持。

zfnww的博客 777

redis存储新闻列表_Redis学习05——存储字符串列表(list)

---------------------作者:愤怒的小明来源:优快云原文:https://blog.csdn.net/qiwenmingshiwo/article/details/78118541Redis学习05存储字符串列表list一字符串列表list 说明二两端添加1 lpush key value1 value22 rpush key value1 value2三查看列表1 lrang...

weixin_32866779的博客 303

Redis学习笔记 - 列表对象list

参考:<<Redis设计与实现>> 注:这本书是基于Redis3.0版本写的,和后面的版本有点差异 列表对象的编码是: ziplist linkedlist 一、列表对象的编码 1.1 ziplist编码 ziplist编码的列表对象使用压缩列表作为底层实现,每个压缩列表节点(entry)保存了一个列表元素。 示例: 插入三个元素: redis> rpus...

mytt_10566的博客 770

Redis学习系列三List列表

一、简介 Redis中的列表相当于C#中的LinkedList,也就是链表,如果你研究过链表这个数据结构,肯定知道.它的插入和删除是非常快的,但是定位却很慢,因为必须遍历所有的元素,才能找到对应的值,所以当你需要对列表进行统计的时候,建立跑后台服务去做,而不是使用Redis去遍历,因为开销很大. Redis中的列表.常用来做异步队列,将需要延后处理的任务对象序列化成字符串,追加到Redis中的...

weixin_33749131的博客 320

Redis学习笔记-List列表(2)

Redis列表类型内部编码根据元素数量和大小自动选择ziplist或linkedlist实现。ziplist适用于元素较少且较小的场景,能节省内存;linkedlist则用于处理大量数据或大元素。列表类型在实际应用中可用于构建消息队列(支持阻塞式消费和分频道订阅)和微博Timeline等场景。通过lpush+brpop命令组合实现生产者-消费者模型,或使用lrange分页获取有序数据,结合哈希结构存储具体内容,满足各类业务需求。

zfnww的博客 889

redis 学习笔记4 PHP redis 列表(list)

概念 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232- 1 个元素 (4294967295, 每个列表超过40亿个元素)。 1. redis list lpush(‘列表名’,‘值1’,‘值2’,‘值n’) 设置值 / lrange( '列表名',‘开始位置’,‘结束位置’ ) 从左边开始,取出列表里的值 / lindex ( 以索引的方式取出数据 ) / lpushx('列表名',‘值’ ) ( 插入的列表必.

qq_40951359的博客 672

Redis学习---(9)Redis 列表(List)

Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232- 1 个元素 (4294967295, 每个列表超过40亿个元素)。 实例 redis 127.0.0.1:6379> LPUSH runoobkey redis (integer) 1 redis 127.0.0...

zhangbijun1230的专栏 280
上一篇: oracle 字符串日期 作为 where 条件比大小
下一篇: java8 LocalDate 获取指定日期后的第N天
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值