Redis数据类型

Redis 是一个数据结构类型的服务器,不是单纯的 key-value 存储。 Redis 里面的键是二进制安全的(二进制安全是指数据在传输过程中保证数据的安全性,包括加密等),因此键的内容不应该包含空格或者换行符。比如 ”hello world” 和 ”hello world\n” 是错误的。

 

一 Keys上的操作



1) DEL key [key...]
    删除多个key,不存在的key,则忽略
    返回实际删除了的key的个数

2) EXISTS key 
    返回1和0表示key是否存在

3) EXPIRE key seconds 
    设置key的存活时间

4) EXPIREAT key timestamp 
    UNIX timestamp(seconds since January 1, 1970)来设置存活期

5) KEYS pattern 
    返回match pattern的keys的列表

6) MOVE key db 
    在当前数据库中将key移动到指定的db中
    如果key在当前db中不存在或者指定的db中已有这个key,就不移动
    返回1或者0表示是否moved

7) OBJECT REFCOUNT <key>
    返回关联到key上的引用的个数
    OBJECT ENCODING <key>
    返回key在数据库内部的压缩编码方式
    OBJECT IDLETIME <key>
    返回key多久没有被读写
   在2.2.3版本后才可使用,目前装的是2.0.2版本,不支持

8) PERSIST key 
    移除key上的时间限制属性,使其永久存在
    版本2.1.2后有效

9) RANDOMKEY
    从数据库随机的返回一个key

10) RENAME key newkey 
    重新命名一个key,其他不变

11) RENAMENX key newkey 
    重新命名一个key,如果newkey已经存在时,命令失败

12)SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] 
    各种排序方式

13) TTL key 
    返回一个key还能在数据库中存活多久(seconds)
    如果key不存在或者没有时间限制,返回-1
    expire mykey可以设置一个key的存活时间

14) TYPE key 
    返回key的类型(string,list,set...)

 

二 Strings

 

这是最简单的 redis 数据类型,在只使用这个数据类型的时候, Redis 就和一个有持久存储功能的 memcached 服务器类似。在 Redis 中,值最大可以有 1GB ,因此可以将图片等内容都缓存进去。 SET 操作, GET 操作是基本的存储和读取操作, INCR 命令可以将值自增 1.



1) APPEND key value 
    如果key不存在,创建一个新的key
    如果key已经存在,在value后apend,改变了value的值

2) DECR key 
    key减1,对整型适用(或者以整型代表的字符串)
    对其他类型,返回错误

3) DECRBY key decrement 
    将key减少指定的这么多
    如果key不存在,从零开始减少

4) GET key 
    不解释

5) GETRANGE key start end 
    返回substring,包含开始和结束索引
    0代表第一个索引,-1最后一个索引

6) GETSET key value 
    对已经存在的key,设置其新的value,并返回老的value
    如果key不是string类型,返回错误

7) INCR key 
    增加,同上

8) INCRBY key increment 
    同上,不解释

9) MGET key [key ...] 
    返回多个值

10) MSET key value [key value ...] 
    同时设置多个key-value的值

11) MSETNX key value [key value ...] 
    当有一个key已经存在时,整条命令都不执行

12) SET key value 
    不解释

13) SETEX key seconds value 
    设置一个key并为它设置时间
    等同于下列命令:
    SET mykey value
    EXPIRE mykey seconds 

14) SETNX key value
    SET if Not eXists,当key不存在时设置一个新的key
    否则,什么也不做

15) SETRANGE key offset value 
    从已存在key的offeset索引处用value代替以前的值
    版本2.1.8后有效

16) STRLEN key 
    不解释




三 Hashes

Redis 的 hash 是 string 类型的 field 和 value 映射表,添加删除的时间复杂度是 O(1) 。适合用来存储对象,可以减少内存的使用。减少内存使用的原因是新建 hash 对象时开始使用 zipmap 来存储。



1) HDEL key field [field ...] 
    删除hash表(key)中的多个域
    对不存在的域忽略,返回实际删除的域的个数

2) HEXISTS key field 
    hash表(key)中是否存在域field

3) HGET key field 
    从hash表中得到域field的值

4) HGETALL key 
    返回hash表中的所有域和它对应的值

5) HINCRBY key field increment 
    将hash表中指定域增加一个值

6) HKEYS key 
    返回所有的域

7) HLEN key 
    返回hash表的长度

8) HMGET key field [field ...] 
    返回hash表多个域的值

9) HMSET key field value [field value ...] 
    同上

10) HSET key field value 
    设置一对值

11) HSETNX key field value 
    仅当域不存在时设置

12) HVALS key 
    返回所有的values





四 Lists

Redis 的 List 类型是使用双向链表存储的,因此不管是在 List 的头还是尾部插入数据,所消耗的时间的是固定的。



1) BLPOP key [key ...] timeout 
    Remove and get the first element in a list, or block until one is available
    Lpop的blocking版本,在timeout时间时间内,pop第一个非空的key中的第一个元素(元素连同它所在的key一起返回)
    可以允许key中有空值,它会去找第一个非空的key
    如果都空,blocking发生作用,它会等待直到有一个key经过了lpush或rpush非空


2) BRPOP key [key ...] timeout     
    Remove and get the last element in a list, or block until one is available
    最后一个。同上


3) BRPOPLPUSH source destination timeout 
    Pop a value from a list, push it to another list and return it; or block until one is available


4) LINDEX key index 
    用索引获取值(后进列表的索引在前)


5) LINSERT key BEFORE|AFTER pivot value 
    将value插入在pivot之前或者之后


6) LLEN key 
    不解释


7) LPOP key 
    pop并返回第一个值(索引0的值)


8) LPUSH key value [value ...] 
    不解释


9) LPUSHX key value 
    同上一条的区别是,只有当key已经存在并非空时,才push一个value


10) LRANGE key start stop 
    返回索引从start到stop的值


11) LREM key count value 
    删除|count|个value,count为正表示从左往右数,为负表示从右往左数
    0表示删除全部值为value的项
    返回值是实际删除的个数


12) LSET key index value 
    要设置的index范围必须已存在


13) LTRIM key start stop 
    trim一个list,保留start到stop之间的


14) RPOP key 
    pop最后一个key


15) RPOPLPUSH source destination 
    pop最后一个元素,append到另一个list里,并返回这个值


16) RPUSH key value [value ...] 
    加到列表最后


17) RPUSHX key value 
    仅当列表已经非空时,加到列表最后





五 Sets

Redis 的 SETs 是没有排序的二进制字符串集,换种说法就是字符串的无序集合。因为它是通过哈希表来实现的,因此它的添加,删除,查找的时间复杂度都是 O ( 1 )。 Set 除了基本的添加删除操作之外,还存在集合的取并集,交集,差集。通过这些操作可以轻松实现 SNS 和 BLOG 的好友推荐,标签等功能。




1) SADD key member
    如果member已存在,命令失效. 注意是集合,元素不能重复


2) SCARD key 
    返回集合中元素的个数


3) SDIFF key [key ...] 
    差集,在第一个集合中存在,但在其他集合中都不存在的元素


4) SDIFFSTORE destination key [key ...] 
    同上,只是将返回的集合存在集合 destination中


5) SINTER key [key ...] 
    交集


6) SINTERSTORE destination key [key ...] 
    同上


7) SISMEMBER key member 
    是否属于一个集合


8) SMEMBERS key 
    返回集合所有元素


9) SMOVE source destination member 
    从一个set里将元素移动到另一个set里
    

10) SPOP key 
    pop一个随进的元素,因为集合是无序的


11) SRANDMEMBER key 
    返回一个随机的元素


12) SREM key member [member ...] 
    移除一个或多个元素
    不在的元素忽略

13) SUNION key [key ...] 
    并集

14) SUNIONSTORE destination key [key ...] 
    同上





六 Sorted Sets

和 set 一样是字符串的集合,不同的是每个元素都会关联一个 double 类型的 score 。实现使用的是 skip list 和hash table , skip list 的实现使用的是双线链表。 Score 的主要作用是排序,因此 sorted set 主要用作索引。



1) ZADD key score member [score] [member] 
    增加一个或多个元素,如果该元素已经存在,更新它的socre值
    虽然有序集合有序,但它也是集合,不能重复元素,添加重复元素只会
    更新原有元素的score值


2) ZCARD key 
    元素个数


3) ZCOUNT key min max 
    SCORE值在min和max之间的元素的个数


4) ZINCRBY key increment member 
    给有序集合key里面的元素member增加increment
    若key不存在,创建一个key
    若member不存在,创建一个member,从0开始增加
    仅当key存在但类型不是有序集合时,出错


5) ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
    
    nubberkeys指定要求交集的集合的个数
    将nubberkeys个集合求交集,结果放在集合destination中
    (如果des已存在,覆盖它)
    
    参数[WEIGHTS weight [weight ...]]
    指定求交集集合的权重,在计算新的score时使用

    参数[AGGREGATE SUM|MIN|MAX] 
    当两个集合中有同一个名字的元素,但score不同时,指定取哪一个score
    的元素


6) ZRANGE key start stop [WITHSCORES] 

    索引start到stop处的元素


7) ZRANGEBYSCORE key min max [WITHSCORES] 
    score在min到max之间的元素


8) ZRANK key member 
    返回menber的索引(score从低到高升序排列)


9) ZREM key member [member ...] 
    不解释


10) ZREMRANGEBYRANK key start stop 
    不解释


11) ZREMRANGEBYSCORE key min max 
    不解释


12) ZREVRANGE key start stop [WITHSCORES] 
    返回索引之间的元素 


13) ZREVRANGEBYSCORE key max min [WITHSCORES]
    同上,返回score区间内的 


14) ZREVRANK key member 
    同8),score降序


15) ZSCORE key member 
    不解释


16) ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX ] 
    
    求并集,其他同5)求交集


来自:http://keshion.iteye.com/blog/1294851

【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
本研究聚焦于运用MATLAB平台,将支持向量机(SVM)应用于数据预测任务,并引入粒子群优化(PSO)算法对模型的关键参数进行自动调优。该研究属于机器学习领域的典型实践,其核心在于利用SVM构建分类模型,同时借助PSO的全局搜索能力,高效确定SVM的最优超参数配置,从而显著增强模型的整体预测效能。 支持向量机作为一种经典的监督学习方法,其基本原理是通过在高维特征空间中构造一个具有最大间隔的决策边界,以实现对样本数据的分类或回归分析。该算法擅长处理小规模样本集、非线性关系以及高维度特征识别问题,其有效性源于通过核函数将原始数据映射至更高维的空间,使得原本复杂的分类问题变得线性可分。 粒子群优化算法是一种模拟鸟群社会行为的群体智能优化技术。在该算法框架下,每个潜在解被视作一个“粒子”,粒子群在解空间中协同搜索,通过不断迭代更新自身速度与位置,并参考个体历史最优解和群体全局最优解的信息,逐步逼近问题的最优解。在本应用中,PSO被专门用于搜寻SVM中影响模型性能的两个关键参数——正则化参数C与核函数参数γ的最优组合。 项目所提供的实现代码涵盖了从数据加载、预处理(如标准化处理)、基础SVM模型构建到PSO优化流程的完整步骤。优化过程会针对不同的核函数(例如线性核、多项式核及径向基函数核等)进行参数寻优,并系统评估优化前后模型性能的差异。性能对比通常基于准确率、精确率、召回率及F1分数等多项分类指标展开,从而定量验证PSO算法在提升SVM模型分类能力方面的实际效果。 本研究通过一个具体的MATLAB实现案例,旨在演示如何将全局优化算法与机器学习模型相结合,以解决模型参数选择这一关键问题。通过此实践,研究者不仅能够深入理解SVM的工作原理,还能掌握利用智能优化技术提升模型泛化性能的有效方法,这对于机器学习在实际问题中的应用具有重要的参考价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值