redis常用数据类型和命令

日常使用篇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 最基本的设置命令
set connection 10
# 原子地递增一个数值
INCR connection
# 删除一条记录
DEL connection
# 获取键对应的值
get connection

# 查看剩余过期时间(-2表示该记录不存在)
ttl connection
# 设置过期时间(默认为-1,表示永不过期)
EXPIRE connection 10

# LIST列表 有序集合
# 从右边入栈
RPUSH friends "sevenlx"
RPUSH friends "rambone"
RPUSH friends "mo2zie"
# 查看元素个数(列表长度)
LLEN friends
# 获取子列表,0 -1表示首尾元素,取所有
LRANGE friends 0 -1
LRANGE friends 1 1

# 内容可重复
# 从左边出
LPOP friends


# SET集合,无序且唯一
# 添加
sadd language "php"
sadd language "golang"
# 查看所有成员
SMEMBERS language
sadd language "js"
# 元素唯一
# 删除
SREM language "golang"

SADD language "go"
SMEMBERS language
# 判断存在于集合中
SISMEMBER language "js'
SISMEMBER language "jsa"
# SUNION 求两集合并集

# Sorted Sets有序集合
ZADD hackers 1940 "Alan Kay"
ZADD hackers 1906 "Grace Hopper"

ZRANGE hackers 0 -1
DEL hackers

# Hashes 映射,表示对象的最佳数据类型
# 逐项设置
hset user:1000 name "rambone"
hset user:1000 email "rambone@gmail.com"
hset user:1000 password "password"
# 获取所有属性|单独属性
HGETALL user:1000
HGET user:1000 name

# 一次性设置
HMSET user:1001 name "mo2zie" email "mo2zie@qq.com" password "hello"

安全配置篇

redis空口令漏洞 这篇博文详细介绍了漏洞产生的原因,如何利用以及如何修复。

归纳而言就是,一般开发者使用了redis最基础的功能,没设置密码同时侦听了0.0.0.0,另外config等容易被hack的命令也没注解掉导致了被黑的灾难。