【Redis学习笔记】03 Redis 字符串基本操作

Redis 数据结构

  • 1. Redis 全局命令
    • 1.1. Redis 数据格式
    • 1.2. 写入数据
    • 1.3. 查看key的类型
    • 1.4. 查看所有key
    • 1.5. 查看有多少key
    • 1.6. 查看某个key是否存在
    • 1.7. 删除某个key
  • 2. Redis 字符串操作
    • 2.1. 字符串常用指令
    • 2.2. 创建一个key
    • 2.3. 查看一个key的值
    • 2.4. 从文件中读取value并创建key
    • 2.5. 创建多个key
    • 2.6. 查看多个key的值
    • 2.7. 天然计数器

1. Redis 全局命令

全局命令是指对所有数据类型都通用的命令

1.1. Redis 数据格式

Redis 的数据格式是 key:value 形式的

key:value
键:值

1.2. 写入数据

使用 SET key value

~]# redis-cli 
127.0.0.1:6379> SET k1 v1
OK
127.0.0.1:6379> SET k2 v2
OK
127.0.0.1:6379> SET k3 

1.3. 查看key的类型

127.0.0.1:6379> TYPE k1
string

1.4. 查看所有key

注意:线上生产禁止执行!!!线上生产环境中,Redis数据较大key的数据较多的话,很可能使用 KEYS * 命令就会把服务器内存占满,从而导致 Redis 挂机

127.0.0.1:6379> KEYS *
1) "k3"
2) "k1"
3) "k2"

1.5. 查看有多少key

127.0.0.1:6379> DBSIZE
(integer) 3

1.6. 查看某个key是否存在

127.0.0.1:6379> EXISTS K1
(integer) 0
127.0.0.1:6379> EXISTS k1
(integer) 1
127.0.0.1:6379> EXISTS k1 k2 k3
(integer) 3
127.0.0.1:6379> EXISTS k1 K2 k3
(integer) 2

状态码:
0:表示这个 key 不存在
1:表示这个 key 存在
N:表示有 N 个 key 存在

1.7. 删除某个key

127.0.0.1:6379> DEL k1
(integer) 1
127.0.0.1:6379> DEL k2 k3
(integer) 2
127.0.0.1:6379> DEL k1
(integer) 0

状态码:
0:表示要删除的 key 不存在
1:表示这个 key 存在,并且被删除成功
N:表示有 N 个 key 存在,并且被删除成功

2. Redis 字符串操作

2.1. 字符串常用指令

命令 含义 用法
set 设置一个key set key value
get 查看一个key get key value
mset 设置多个key mset key1 value1 key2 value2
mget 查看多个key mget key1 key2
incr 对整数的value值进行增值,默认一次加1 incr key
incrby 对整数的value进行自定义增加值 incrby key 增加的值
decr 对整数的value值进行缩值,默认一次减1 decr key
decrby 对整数的value进行自定义缩值 decr key 缩减的值
del 删除一个key del key
exists 查看一个key是否存在 exists key
ttl 查看一个key的生命周期 ttl key
expire 设置key的生命周期 expire key 生命周期时长
persist 设置key的生命周期为永不过期 persist key

2.2. 创建一个key

语法:SET key value

# 1. 在交互模式下创建 key
~]# redis-cli 
127.0.0.1:6379> SET k1 v1
OK

# 2. 在命令行创建 key
~]# redis-cli SET k2 v2
OK

2.3. 查看一个key的值

语法:GET key

# 1. 在交互模式下查看 key
127.0.0.1:6379> GET k1
"v1"
# 2. 在命令行查看 key
~]# redis-cli GET k2
"v2"

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

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

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

# 1. 准备一个中文内容的文件
~]# cat > /tmp/text << EOF
> 道可道,非常道
> EOF

# 2. 从文件中读取内容并创建一个 key
~]# redis-cli set text `cat /tmp/text`
OK

# 3. 查看 key 的内容,发现显示乱码
~]# redis-cli get text
"\xe9\x81\x93\xe5\x8f\xaf\xe9\x81\x93\xef\xbc\x8c\xe9\x9d\x9e\xe5\xb8\xb8\xe9\x81\x93"

# 4. 将 key 导出到文件时会发现时中文输出
~]# redis-cli get text > /tmp/text2
~]# cat /tmp/text2
道可道,非常道

# 5. 解决 Redis 显示中文乱码
~]# redis-cli --raw get text
道可道,非常道

2.5. 创建多个key

语法:MSET key value [key value ...]

127.0.0.1:6379> MSET k3 v3 k4 v4 k5 v5
OK
127.0.0.1:6379> KEYS *
1) "k3"
2) "k1"
3) "text"
4) "k5"
5) "k2"
6) "k4"

~]# redis-cli MSET k3 v3 k4 v4 k5 v5
OK

2.6. 查看多个key的值

语法:MGET key [key ...]

127.0.0.1:6379> MGET k3 k4 k5
1) "v3"
2) "v4"
3) "v5"

~]# redis-cli MGET k3 k4 k5
1) "v3"
2) "v4"
3) "v5"

2.7. 天然计数器

Redis 支持对些整数 value 增加或者减少,前提是 value 必须是整数

整数增加使用 INCR 命令,INCR 每次增加1,INCRBY 可以更加自己的需求增加

# 1. 创建一个整数的 key,将 50 增加到 55
127.0.0.1:6379> SET num1 50
OK
127.0.0.1:6379> INCR num1
(integer) 51
127.0.0.1:6379> INCR num1
(integer) 52
127.0.0.1:6379> INCR num1
(integer) 53
127.0.0.1:6379> INCR num1
(integer) 54
127.0.0.1:6379> INCR num1
(integer) 55
127.0.0.1:6379> GET num1
"55"

# 2. 使用 INCRBY 自定义增加值,将 55 增加到 60
127.0.0.1:6379> GET num1
"55"
127.0.0.1:6379> INCRBY num1 5
(integer) 60
127.0.0.1:6379> GET num1
"60"

我们还可以使用 INCTBY 对值进行减少

127.0.0.1:6379> GET num1
"60"
127.0.0.1:6379> INCRBY num1 -1
(integer) 59
127.0.0.1:6379> INCRBY num1 -1
(integer) 58
127.0.0.1:6379> INCRBY num1 -1
(integer) 57
127.0.0.1:6379> INCRBY num1 -1
(integer) 56
127.0.0.1:6379> INCRBY num1 -1
(integer) 55
127.0.0.1:6379> INCRBY num1 -5
(integer) 50

但是 Redis 提供了单独的减少命令 DECRDECRBY, DECR 每次减 1, DECRBY 可以自定义每次减去的值

127.0.0.1:6379> GET num1
"50"
127.0.0.1:6379> DECR num1
(integer) 49
127.0.0.1:6379> DECR num1
(integer) 48
127.0.0.1:6379> DECR num1
(integer) 47
127.0.0.1:6379> DECRBY num1 10
(integer) 37

你可能感兴趣的:(#,Redis,redis,学习,缓存)