redis的数据结构

一:字符串

1.1说明:

值支持的最大不能超过512MB

1.2 命令

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

ex: 键的过期时间, 单位为秒

px: 键的过期时间,单位为毫秒

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

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



setex key value 等于 set key value ex

setnx key value 等于 set key value nx



get key



批量设置值:

mset key value [k1 v1 k2 v2 k3 v3...]

批量获取值:

mget key [k1 k2 ....]

计数:

incr key

追加值:

append key value

字符串长度:

strlen key

设置并返回原值:

getset key value

设置指定位置的字符:

setrange key offset value

获取部分字符串:

getrange key start end

各命令的时间复杂度:

1.3内部编码:

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

int 8个字节的长整型

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

raw: 大于39字节的字符串

1.4典型的使用场景

a.缓存功能: 以Redis作为缓存层, mysql作为存储层

b.计数

视频播放数:

set video:playcount 1

Incr  video:playcount

c.共享session

d.限速

二 哈希

2.1 说明

哈希的映射关系叫做field-value

2.2 命令

hset key field value

hegt key field

hdel key field [field ….]

hlen key

hmget key field [field …..]

hmset key field value [field value ….]

hexists key field

获取所有的filed

hkeys key

获取所有value

hvals key

获取所有的field-value

hgetall key

2.3 内部编码

ziplist 压缩列表  哈希元素小于512个配置

hashtable 哈希表 超过512时使用,读写效率会下降

2.4 使用场景

存储用户信息

三 列表

3.1 说明

存储多个有序字符串

3.2命令

从右边插入元素:

rpush key value

从左边插入元素:

lpush key value [value]

查找元素:

lrange key start end

删除:

lpop/rpop key value

修剪列表:

ltrim key start end

修改:

lset key index newvalue

阻塞队列:

BRPOP key [key

] timeout

BRPOP list1 list2 10

时间复杂度:

3.3 内部编码:

ziplist 压缩列表 不超过512个

linkedlist 链表,超过512

3.4 使用场景:

 1:消息队列:使用lpush + brpop 实现阻塞队列

  2:文章列表分页

4 集合

4.1增删改查:

增: sadd  key element[…..]

删 : srem key element

查:

计算元素个数:scard key

判断元素是否在集合中: sismember key element

随机从集合中返回指定个数元素: srandmember key count

获取所有元素: smembers key

查并且删除:spop key  从集合中随机返回一个元素并删除

集合之间的操作:

求集合交集:sinter key [key ….]

求集合并集:suinon key [key ….]

求多个集合的差集: sdiff key [key …..]

4.2 内部编码

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

Intset 整数集合 默认512

Hashtable 哈希表

4.3 使用场景

集合的使用场景是标签,例如一个用户可能对娱乐、体育感兴趣,另一个用户对历史、新闻感兴趣,这些兴趣就是一个标签

5 有序集合:

5.1:增删改查

增:增加元素:

zadd  key score member [sorce member …..]

增加元素分数

zincrby key increment member

删除:

删除成员: zrem key member [member …]

删除指定排名内的升序元素:  zremrangebyrank key start end

删除指定分数范围的元素:  zremrangebyscore key min max

查询:

计算成员个数: zcard key

计算某个成员的分数: zscore key member

计算成员的排名: zrank key member  分数从低到高 , 升序

   zrevrank key member 分数从高到低, 降序

返回指定排名范围的成员: zrange key start end[withscores]或者zrevrange key start end  [withscores]

返回指定分数范围的成员: zrangebyscore key min max [withscores] [limit offset count]

Zrevrangebyscore key max min [withscores] [limit offset count]

返回指定分数范围成员个数: zcount key min max

集合之间的操作:

交集:zinterstore destination numbers key [key ….]

并集: zunionstore destination numbers key [key ….]

destination : 计算结果保存的键

numkeys: 计算键的个数

                                   

复杂度

5.2 内部编码:

Ziplist(压缩列表) 128

Skiplist(跳跃列表)

5.3 使用场景:

适用于排行榜系统

6: redis键管理:

对redis所有的键生效:

type, del, object exists expire

键重命名:

rename

随机返回一个键:

randomkey

清楚键过期时间:

persist key

迁移键:

move key db

或者:

dump key

 restore key ttl value

或者:

migrate host port key | "" destination-db timeout

全量遍历键:

dbsize

 keys *

渐进式遍历:

scan cursor [match pattern] [count member]

在计算机科学的研究与数据管理实践中,自动化程序的应用价值日益显著。本文所述工具“关键词驱动的CCF等级论文自动采集系统”即为一例,其核心功能在于依据用户设定的检索词,自动收集、筛选并整合由中国计算机学会(CCF)认证的A、B、C三个等级的学术期刊及会议论文。此类自动化方案不仅显著提升了科研工作的效率,亦加速了学术资源的有效传播与应用。CCF对期刊与会议的分级体系,为学界提供了明确的参考框架:A级代表该学科内最具权威性与影响力的顶尖出版物,B级与C级则分别对应重要及具有一定认可度的学术平台。该系统的运作流程主要包括:接收用户输入的关键词,通过互联网进行定向检索,并借助网页解析、元数据提取或专用接口等方式,识别出同时符合关键词条件且属于CCF分级范围的论文条目。随后,程序将对获取的信息进行结构化处理,生成清晰易读的汇总报告,其中通常涵盖论文题目、作者、发表日期、所属期刊或会议名称等关键字段。技术层面,该工具的实现很可能基于网络爬虫与数据抓取技术。网络爬虫能够自动化地遍历目标网站,模拟人工浏览行为;数据抓取则专注于从页面中提取特定内容。两者结合,可高效完成大规模、重复性的信息采集任务。在编程实现上,开发者多采用Python语言,并借助如Requests进行网络请求、BeautifulSoup或Scrapy进行页面解析、Pandas及NumPy进行数据处理等开源库。此外,为管理自动化任务的执行流程,可能集成Celery等任务队列系统。需要指出的是,尽管该工具具备高效便捷的优势,使用者必须严格遵守相关法律与伦理规范。这包括尊重目标网站的服务协议、保护知识产权与隐私权、避免对学术资源的过度索取或不当使用。同时,由于网络环境与网站结构的动态变化,程序可能面临反爬虫策略、页面格式调整等运行障碍,因此需进行定期维护与适应性更新。总体而言,本工具为科研人员提供了一种快速定位高价值学术资料的有效手段,能大幅节约文献调研的时间成本。然而,使用过程中应始终秉持负责任的态度,确保操作合法合规,并对潜在的技术挑战保持充分认识。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值