Redis中 字符串的常用命令(一)

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: Redis中 字符串的常用命令(一)

🍖 Redis相关基础知识

🥩 默认端口号为什么是6379?

 6379是九键输入法上MERZ对应的号码,而MERZ取自意大利歌手、女演员Alessia Merz的名字 ,Redis 作者 Antirez 早年看电视节目的时候,觉得 Merz 在节目中的一些话愚蠢可笑,于是Antirez 就用 "MERZ"来形容愚蠢,然后又重新将其定义为,形容”具有很高的技术价值,包含技艺、耐心和劳动,但仍然保持简单本质“。等到Antirez 给 Redis 选择一个数字作为默认端口号时,想都没想就把 “MERZ” 在手机键盘上对应的数字 6379 拿来用了。所以说外国人定义的时候也是真随意啊,前有Java岛的咖啡,后有6379的女演员


🥩 与memcached区别以及底层机制

 Redis默认有16个数据库,使用索引从0~15定义,使用redis-cli连接上redis的客户端时默认使用的是0号库。可以使用select 索引号来切换数据库,所有库使用的都是同一个密码

image.png redis与memcached的区别: memcached支持的数据类型比较单一,redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set 有序集合);memcached只能存储在内存中并不支持进行持久化操作,redis两种都可以;memcached使用的是多线程+锁机制,redis使用的是单线程+多路IO复用机制


 单线程+多路IO复用机制是什么? 以在食堂吃饭为例,我们在卖饭阿姨那交完钱之后拿到自己相对应的号牌,然后在旁边等着被叫到号才能去吃饭,在等着的时间里还可以刷一刷扎哇太枣糕的博客一点也不耽误时间。在上面这个案例中,卖饭阿姨和厨后厨之间就是单线程操作,但是卖饭阿姨和我们买饭的人之间就是多路IO复用,多路操作但是并不耽误在没被叫到的时候干些别的事情,这样的话就可以将效率提到最高


🍖 Redis的键(key)操作

①查看当前库的所有key:keys *

image.png

②判断某个key是否存在: exists key

③查看key的类型: type key

image.png

key的值进行删除: del keyunlink key

 同样都是按照key的值删除,两者的区别就是del key直接删除,如果此时删除的数据很大量时就会造成线程阻塞,然而unlink key是非阻塞的异步删除,当执行这个命令之后,这些使用unlink的K-V就交给异步线程执行del操作,主线程无法再访问这些K-V,这样的话就能很快的删除大量的数据而不至于造成线程阻塞无法做其他操作

image.png

⑤设置key的过期时间(秒为单位): expire key seconds

⑥查看该key还有多少秒过期: ttl key

image.pngkey的数量: dbsize

⑥清空当前库的内容: flushdb

⑥清空所有库的内容: flushall 

🍖 五大基本类型——字符串(String)

 String是Redis中最基本的数据类型,它是一种二进制安全的数据类型,这也就意味着Redis中的String可以是任何类型的数据,比如序列化对象、图片、视频、音频等都可以转换成二进制文件存储在Redis中,从数据库中读出再转换成图片、视频、音频显示。Redis基于K-V存储,一个K-V中的value最大只能是512M


🥩 字符串常用命令

单个添加、获取

添加一个K-V:

  set key value如果K已存在就 覆盖原值

  setnx key value如果K已存在就添加失败

通过K值查询V:get key

image.png期时间:

  setex key seconds value

修改key的值并返回修改之前的值:

  getset key value

image.png

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
29天前
|
NoSQL Java Redis
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
分布式锁实现原理问题之使用Redis的setNx命令来实现分布式锁问题如何解决
|
22天前
|
存储 缓存 NoSQL
Redis 全局通用命令整理
Redis 全局通用命令整理
47 10
|
21天前
|
存储 JSON NoSQL
Redis常见命令大全
【7月更文挑战第30天】
11 3
|
21天前
|
NoSQL Redis 索引
Redis 中ZSET数据类型命令使用及对应场景总结
Redis 中ZSET数据类型命令使用及对应场景总结
31 2
|
21天前
|
NoSQL Redis
Redis set数据类型命令使用及应用场景使用总结
Redis set数据类型命令使用及应用场景使用总结
22 1
|
25天前
|
NoSQL 网络协议 Redis
Redis性能优化问题之如何判断 Redis 性能下降是否由复杂度过高的命令引起
Redis性能优化问题之如何判断 Redis 性能下降是否由复杂度过高的命令引起
|
25天前
|
编解码 NoSQL Redis
c++开发redis module问题之想实现Redis命令,如何解决
c++开发redis module问题之想实现Redis命令,如何解决
|
25天前
|
NoSQL Java 编译器
c++开发redis module问题之保证Redis在fork时没有处于inflight状态的命令,如何解决
c++开发redis module问题之保证Redis在fork时没有处于inflight状态的命令,如何解决
|
4天前
|
NoSQL Java Redis
Redis字符串数据类型之INCR命令,通常用于统计网站访问量,文章访问量,实现分布式锁
这篇文章详细解释了Redis的INCR命令,它用于将键的值增加1,通常用于统计网站访问量、文章访问量,以及实现分布式锁,同时提供了Java代码示例和分布式锁的实现思路。
11 0
|
25天前
|
NoSQL Redis C++
c++开发redis module问题之对于写命令,进行主备复制和写AOF,如何解决
c++开发redis module问题之对于写命令,进行主备复制和写AOF,如何解决