Redis

本文深入解析Redis中的数据结构及其操作方法,包括字符串、哈希、链表、集合、有序集合等,详述每种数据结构的特点与应用场景,并提供实用的Redis命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

非关系型数据库(NOSQL)——key-value

查看当前是否运行:ps -ef | grep -i redis
设置密码:config set requirepass 123456    //用于jdbc连接redis,否则受保护只能本地连接


字符串和数字:
getset n 3 //获取并修改————2      //get n ——3
incr n     //默认加一,n默认为0 incr n = 1;
incrby n 3   //4
decr n          //3
decrby n 2   //1

append s1 jj //定义并赋值value jj 给s1
append s1 sb //get s1    jjsb


哈希:基本结构: hkey key value     //一个hkey 可以有多个key;
hset people name java    //hget people name ——java
hset people id 1    //hget people id   —— 1
hmset man user java password 123456 //hmget man user password——1)java 2)123456
hgetall man——————1)"user"2)"java"3)"password"4)"123456"
hdel people name id    //删除一个或者多个
hset man age 20
hincrby man age 5      //hget man age ——25
hexists man age——1    hexists man aaa——0

hlen man       //属性个数(key)的个数:(user,password,age)——  3
PS:hlen xx 若xx未创建或者被删除完则为0 若xx是不同类型:已经是set ,key会报错!(wrong kind of value) 

hkeys man        //获取所有属性值(key)——user,psssword,age
PS:若不是哈希类型的Key,一样会报错!若是,则(empty list or set)

hvals man     //获取所有value——————java,123,25
PS:同上

链表(双向链表):
从左边开始添加:lpush list a b c xxx
从右边开始添加:rpush list 1 2 3
查询(只能从左边开始):lrange list 0 -1    //索引从0开始,-1为最后一个
——————————xxx c b a 1 2 3
删除:lrem list 1(count个数) xxx(value)   //count正数从左边开始,负数从右边开始,0代表所有
弹出(显示并删除):lpop 左侧弹出数据 rpop右侧弹出数据
llen查看元素个数::llen list————6
插入:
lpushx 从链表的头部(左边)插入一个元素:lpush list first
rpushx 从链表的尾部(右边)插入一个元素:rpush list last
lpush  从头部插入多个:lpush list hello  rpush 从尾部插入多个:rpush list hi
指定设置:
lset list 0 xxx ——————xxx b a 1 2 3
指定位置插入:
linsert list before/after xxx(value) sst(insert_value)
尾出头入:rpoplpush list1 list2  //list1(a,b,c)list2(1,2,3)
————lrange list1/list2 0 -1;———list1(a,b)list2(c,1,2,3);


set集合(没有重复集合&&无序)
添加:sadd set1 a b c a d e       sadd set2 b c d 
查找(无序并且没有重复):smembers set1 ————a c e  b d
删除(可删除多个):srem set1 e d —————— a b c
获取集合中元素个数:scard set1 ————3
查看是否存在:sismember set1 g ——0     sismember set1 a ——1
随机取一个值:srandmember set1 ——a
                         ---------(set1:a b c  set2 b)---------------
获取俩个或者多个集合差(set1-set2):sdiff set1 set2————a c
获取俩个或多个集合交集:sinter set1 set2————b
获取俩个或多个集合的并集(set1+set2):sunion set1 set2——a b c
以上并存储进一个set集合:sdiffstore s set1 set2——2 // //smembers s ——a c


sorted_set集合(中的成员没有重复的,但是在集合中的位置是有序的,)——type:zset
添加:zadd sort1 5 a 4 b 6 c
查询:zrange sort1 0 -1  (从第0到最后一个 ps:0 -2 从第0个到倒数第二个)//0 -1都是索引
重新赋值分数:zadd sort1 2 a ——添加条数0
获取分数:zscore sort1 a——2
删除:zrem sort1 a
获取元素个数:zcard sort1 ——3
查询并连带分数:zrange sort1 0 -1 withscores
查到降序排列:zrevrange sort1 0 -1
删除按照范围:
一:按照排名删除:zremrangebyrank sort1 0 1——从0删到1   若为 -3 -1 从倒数第三个删除到最后一个
二:按照分数范围删除:zremrangebyscore scort1 3 5(删除分数为3 4 5的元素)

查找分数范围内并限定起始 类似分页:分数在2~10分之间,从所查到数据的第4个(索引3)数据开始显示3个
zrangebyscore sort 2 10 limit 3 3————zrangebyscore sort min max limit start count

给指定member增加分数:zincrby sort 10 a——给sort中a添加10分
查找指定评分范围的元素个数:zcount sort 1~3——查找1~3分的个数


keys通用操作:
显示所有key:keys *     //keys a*    keys a?    keys ?a??    keys *a*
删除key:del s1 s2 s3
判断是否存在key:exists s2——0 exists sort ——1   参数可以多写,只输出个数:exists s1 s2——2
重命名:rename s1 sst    //get s1 ——nul   //get sst ——asst
设置有效时间:expire sst 521 ——————521秒之后删除
查询剩余时间:ttl sst——520
显示类型type:type sst——string           type h1——hash       type ll——list    
        type sort1 ——zset               type s1 ——set

集群:

选择ruby版本为2.3.6:
scl enable rh-ruby23 bash
单机多节点创建集群:
redis-trib.rb create --replicas 1  127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
进入集群redis环境:/usr/local/redis/bin/redis-cli -c -p 7002

多机多节点创建集群:
redis-trib.rb create --replicas 1  192.168.211.129:7001 192.168.211.129:7002 192.168.211.129:7003 192.168.211.130:7004 192.168.211.130:7005 192.168.211.130:7006
进入集群redis环境:/usr/local/redis/bin/redis-cli -h 192.168.211.129 -c -p 7002

内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
资 源 简 介 独立分量分析(Independent Component Analysis,简称ICA)是近二十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系, 详 情 说 明 独立分量分析(Independent Component Analysis,简称ICA)是近二十年来逐渐发展起来的一种盲信号分离方法。它是一种统计方法,其目的是从由传感器收集到的混合信号中分离相互独立的源信号,使得这些分离出来的源信号之间尽可能独立。它在语音识别、电信和医学信号处理等信号处理方面有着广泛的应用,目前已成为盲信号处理,人工神经网络等研究领域中的一个研究热点。 本文简要的阐述了ICA的发展、应用和现状,详细地论述了ICA的原理及实现过程,系统地介绍了目前几种主要ICA算法以及它们之间的内在联系,在此基础上重点分析了一种快速ICA实现算法一FastICA。物质的非线性荧光谱信号可以看成是由多个相互独立的源信号组合成的混合信号,而这些独立的源信号可以看成是光谱的特征信号。为了更好的了解光谱信号的特征,本文利用独立分量分析的思想和方法,提出了利用FastICA算法提取光谱信号的特征的方案,并进行了详细的仿真实验。 此外,我们还进行了进一步的研究,探索了其他可能的ICA应用领域,如音乐信号处理、图像处理以及金融数据分析等。通过在这些领域中的实验和应用,我们发现ICA在提取信号特征、降噪和信号分离等方面具有广泛的潜力和应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值