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

本文涉及的产品
云数据库 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
目录
相关文章
|
16天前
|
XML JSON NoSQL
Redis的常用数据结构之字符串类型
Redis的常用数据结构之字符串类型
19 0
|
28天前
|
缓存 监控 NoSQL
【Redis性能瓶颈揭秘】「调优系列」深入分析热Key的排查策略和解决方案
【Redis性能瓶颈揭秘】「调优系列」深入分析热Key的排查策略和解决方案
184603 2
|
1月前
|
NoSQL 安全 Linux
Redis 字符串:SDS
Redis 字符串:SDS
37 0
|
1月前
|
存储 缓存 NoSQL
【Redis】Redis魔法:揭秘Key的自动消失术——过期删除机制解析
【Redis】Redis魔法:揭秘Key的自动消失术——过期删除机制解析
131 0
|
2月前
|
存储 NoSQL 5G
redis优化编码之字符串
Redis数据结构之字符串
41 2
redis优化编码之字符串
|
2月前
|
NoSQL Java Redis
面试01-Redis 如何从海量数据中查询出某一个 Key
面试01-Redis 如何从海量数据中查询出某一个 Key
95 0
|
1天前
|
存储 NoSQL 安全
Redis入门到通关之数据结构解析-动态字符串SDS
Redis入门到通关之数据结构解析-动态字符串SDS
|
18天前
|
NoSQL Shell Redis
批量迁移redis实例的key
批量迁移redis实例的key
|
23天前
|
存储 消息中间件 缓存
Redis 字符串:用一串数据解决多种问题
Redis 字符串:用一串数据解决多种问题
|
30天前
|
存储 NoSQL Java
Redis 数据结构操作入门
Redis 数据结构操作入门
15 0

热门文章

最新文章