Redis五种常用字符串类型的KEY基本操作操作(二)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: redis字符串操作1.redis字符串类型string 字符串类型,常用于普通文本list 列表类型,常用于一个仓库,取走一个数据就删除hash 哈希类型,常用于将mysql数据导入redis

redis字符串操作

1.redis字符串类型

string 字符串类型,常用于普通文本

list 列表类型,常用于一个仓库,取走一个数据就删除

hash 哈希类型,常用于将mysql数据导入redis

set 集合类型,用于不同集合进行比对

2.redis常用指令

keys * //列出所有key,生产环境不要使用,很有可能一使用keys就会把服务器内存占满,从而导致redis挂机,因为生产环境有长千上万个key

type key //查看key是什么类型

del key //删除一个key

flushdb //清除缓存

3.redis字符串类型操作

3.1.字符串类型常用指令

image.png

3.2.创建一个key并查看

语法:set key名 value值

既可以在交互式创建也可以在命令行创建

1.在交互式创建一个key
[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> set k1 v1
OK
2.在命令行创建一个key
[root@redis-1 ~]# redis-cli set k2 v2
OK
3.在交互式查看key内容
[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> get k1 
"v1"
4.在命令行查看key内容
[root@redis-1 ~]# redis-cli get k2
"v2"

3.3.从文件中读取value并创建key

redis支持value的内容为中文,准备一个中文的文件,创建key的时候读取文件的值

中文的文件存储到redis之后是,只是显示是乱码,实际上还是中文,可以导出到文件查看中文,也可以加–raw解决乱码显示问题

1.准备一个中文的文件
[root@redis-1 ~]# cat > test.txt <<EOF
> 当你能念书时,你念书就是;当你能做事时,你做事就是;当你能恋爱时,你再去恋爱;当你能结婚时,你再去结婚。环境不许可时,强求不来;时机来临时,放弃不得。这便是一个人应有的生活哲学了。
> EOF
2.创建一个key从文件中读取value
[root@redis-1 ~]# redis-cli set test `cat test.txt`
OK
3.查看key的内容,会发现是乱码
[root@redis-1 ~]# redis-cli get test
"\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe5\xbf\xb5\xe4\xb9\xa6\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\xbf\xb5\xe4\xb9\xa6\xe5\xb0\xb1\xe6\x98\xaf\xef\xbc\x9b\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe5\x81\x9a\xe4\xba\x8b\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\x81\x9a\xe4\xba\x8b\xe5\xb0\xb1\xe6\x98\xaf\xef\xbc\x9b\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe6\x81\x8b\xe7\x88\xb1\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\x86\x8d\xe5\x8e\xbb\xe6\x81\x8b\xe7\x88\xb1\xef\xbc\x9b\xe5\xbd\x93\xe4\xbd\xa0\xe8\x83\xbd\xe7\xbb\x93\xe5\xa9\x9a\xe6\x97\xb6\xef\xbc\x8c\xe4\xbd\xa0\xe5\x86\x8d\xe5\x8e\xbb\xe7\xbb\x93\xe5\xa9\x9a\xe3\x80\x82\xe7\x8e\xaf\xe5\xa2\x83\xe4\xb8\x8d\xe8\xae\xb8\xe5\x8f\xaf\xe6\x97\xb6\xef\xbc\x8c\xe5\xbc\xba\xe6\xb1\x82\xe4\xb8\x8d\xe6\x9d\xa5\xef\xbc\x9b\xe6\x97\xb6\xe6\x9c\xba\xe6\x9d\xa5\xe4\xb8\xb4\xe6\x97\xb6\xef\xbc\x8c\xe6\x94\xbe\xe5\xbc\x83\xe4\xb8\x8d\xe5\xbe\x97\xe3\x80\x82\xe8\xbf\x99\xe4\xbe\xbf\xe6\x98\xaf\xe4\xb8\x80\xe4\xb8\xaa\xe4\xba\xba\xe5\xba\x94\xe6\x9c\x89\xe7\x9a\x84\xe7\x94\x9f\xe6\xb4\xbb\xe5\x93\xb2\xe5\xad\xa6\xe4\xba\x86\xe3\x80\x82"
4.将key导出到文件时会发现是中文输出
[root@redis-1 ~]# cat test2.txt
当你能念书时,你念书就是;当你能做事时,你做事就是;当你能恋爱时,你再去恋爱;当你能结婚时,你再去结婚。环境不许可时,强求不来;时机来临时,放弃不得。这便是一个人应有的生活哲学了。
5.解决redis显示中文乱码
[root@redis-1 ~]# redis-cli --raw get test
当你能念书时,你念书就是;当你能做事时,你做事就是;当你能恋爱时,你再去恋爱;当你能结婚时,你再去结婚。环境不许可时,强求不来;时机来临时,放弃不得。这便是一个人应有的生活哲学了。

3.4.对整数的value增值

redis支持对一些整数的value的值增加和减少,前提是value值必须为整数

整数增值使使用INCR命令,INCR每次加1,INCRBY可以根据自己的需求进行增加

1.创建一个整数的key,将100增加到103
[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> set num1 100
OK
127.0.0.1:6379> INCR num1
(integer) 101
127.0.0.1:6379> INCR num1
(integer) 102
127.0.0.1:6379> INCR num1
(integer) 103
127.0.0.1:6379> get num1
"103"
2.使用INCRBY自定义增加值,将103加到113
[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> get num1
"103
127.0.0.1:6379> INCRBY num1 10
(integer) 113
127.0.0.1:6379> get num1
"113"

3.5.对整数的Value进行减值

DECR每次减1,DECRER可以自定义每次减的值

1.使用DECR每次减1
[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> get num1
"113"
127.0.0.1:6379> DECR num1
(integer) 112
127.0.0.1:6379> DECR num1
(integer) 111
2.使用DECR每次减10
[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> get num1
"111"
127.0.0.1:6379> DECRBY num1 11
(integer) 100
127.0.0.1:6379> get num1
"100"

3.6.查看key类型

127.0.0.1:6379> type k1         //类型为字符串
string
127.0.0.1:6379> type num1       //即使值为整数也属于string,因为是由set创建的key
string
命令行查看
[root@redis-1 ~]# redis-cli type k1
string

3.7.使用mset创建多个key

语法格式:mset key1 value2 key2 value2

127.0.0.1:6379> MSET k3 v3 k4 v4 k5 v5 k6 v6
OK
127.0.0.1:6379> keys *
1) "test"
2) "k2"
3) "k4"
4) "num1"
5) "k1"
6) "num"
7) "k5"
8) "k3"
9) "k6"
在命令行创建
[root@redis-1 ~]# redis-cli MSET k3 v3 k4 v4 k5 v5 k6 v6
OK

3.8.使用mget查看多个key的值

语法格式:mget key1 key2 key3

127.0.0.1:6379> MGET k1 k2 k3 k4 k5 k6
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
6) "v6"
在命令行查看
[root@redis-1 ~]# redis-cli MGET k1 k2 k3 k4 k5 k6
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
6) "v6"

3.9.查看一个key是否存在

语法格式 exists key

返回结果为1表示存在,返回结果为0表示不存在

[root@redis-1 ~]# redis-cli 
127.0.0.1:6379> EXISTS k10
(integer) 0
127.0.0.1:6379> EXISTS k6
(integer) 1
命令行创建
[root@redis-1 ~]# redis-cli  exists k6
(integer) 1

3.10.删除一个key

语法格式:del key

返回结果为1表示删除成功,返回结果为0表示不存在

[root@redis-1 ~]# redis-cli
127.0.0.1:6379> del k6
(integer) 1
127.0.0.1:6379> del k6
(integer) 0
命令行
[root@redis-1 ~]# redis-cli del k6
(integer) 0
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
13天前
|
消息中间件 缓存 NoSQL
Redis 高并发竞争 key ,如何解决这个难点?
本文主要探讨 Redis 在高并发场景下的并发竞争 Key 问题,以及较为常用的两种解决方案(分布式锁+时间戳、利用消息队列)。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Redis 高并发竞争 key ,如何解决这个难点?
|
19天前
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
27天前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
37 4
|
28天前
|
NoSQL Unix Redis
Redis 键(key)
10月更文挑战第15天
31 1
|
30天前
|
消息中间件 存储 监控
redis 的List类型 实现 排行榜
【10月更文挑战第8天】
36 2
|
30天前
|
存储 NoSQL Redis
redis-set类型
【10月更文挑战第6天】
36 1
|
1月前
|
缓存 监控 负载均衡
如何解决Redis热点Key问题?技术干货分享
【10月更文挑战第2天】在Redis的使用过程中,热点Key问题是一个常见的性能瓶颈。热点Key指的是那些被频繁访问的Key,它们可能导致Redis服务器的负载不均衡,进而影响整体性能。本文将深入探讨热点Key问题的成因、影响以及多种解决方案,帮助读者在实际工作中有效应对这一挑战。
51 3
|
1月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
27 3
|
1月前
|
消息中间件 分布式计算 NoSQL
大数据-41 Redis 类型集合(2) bitmap位操作 geohash空间计算 stream持久化消息队列 Z阶曲线 Base32编码
大数据-41 Redis 类型集合(2) bitmap位操作 geohash空间计算 stream持久化消息队列 Z阶曲线 Base32编码
27 2
|
19天前
|
存储 NoSQL 关系型数据库
Redis的ZSet底层数据结构,ZSet类型全面解析
Redis的ZSet底层数据结构,ZSet类型全面解析;应用场景、底层结构、常用命令;压缩列表ZipList、跳表SkipList;B+树与跳表对比,MySQL为什么使用B+树;ZSet为什么用跳表,而不是B+树、红黑树、二叉树