数据类型

Redis是以key-value的形式存储数据的。key无论如何都是字符串类型,Value支持如下的五种数据类型

  • 字符串(String)
  • 哈希(Hash)
  • 列表(list)
  • 无序集合(sets)
  • 有序集合(sorted sets)
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
--- String(字符串)
格式: key value
示例: name lnj

--- Hash(哈希)
格式: key field value
示例:
user name lnj
user age 33
user gender man
user ... ...
hash就相当于编程开发中的Map或者对象
注意点: Hash是无序的

--- List(列表)
list就相当于编程开发中的链表或者数组
格式: key value1 value2 value3
示例: names lnj zs ls ww
注意点: list是有序的

--- Set(集合)
键是String, 值set
一堆无序的数据
注意点: 存储的数据不能重复

--- Zset(有序集合)。
一堆有序的数据, 通过权重和实现排序
注意点: 存储的数据不能重复

数据库

默认情况下Redis给我们创建了16个数据库(0~15),如果使用的时候没有明确的选中使用哪个数据库, 那么默认使用第0个。

1
2
切换数据库
select 1

字符串操作

基本的增删改查

1
2
3
4
5
6
7
8
9
10
11
- 新增 set
set key value

- 查询 get
get key

- 修改 set 如果key已经存在就是修改
set key value

- 删除 del
del key

set默认不管key是否存在都设置(不存在就新增, 存在就覆盖)

setnx 只有key不存在才设置(新增) (not exit)

xx 只有key存在才设置(更新)

1
2
setnx key value
set key value xx

mset批量设置; mget 批量查询

1
2
3
4
5
mset key value key value...
mset name lnj age 98 score 100

mget key key key...
mget name age score

其他操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
set key abc123
---------------------------------

- 设置新值返回旧值
getset key newValue

- 给旧值追加数据
append key value
//abc123value

- 计算value字符串长度
strlen key
//6

- 获取指定下标范围的值
getrange key start end
//getrange key 0 1 返回ab

- 从指定下标开始设置字符串的值
setrange key offset value
//setrange key 1 666 返回 a66623

字符串自增自减