目录

1. 客户端和服务端命令

1.1 服务器端

1.2 客户端

2. 数据操作

2.1 普通键值对保存

2.2 设置键值以及过期的时间

2.3 设置多个键值

2.4根据键获取值,如果不存在返回nil

2.5 根据多个键获取多个值

3. 键命令

3.1查看所有键

3.2查看名称中包含n的键

3.3判断键是否存在,如果存在返回1,否则返回0

3.4查看键对应的value类型

3.5删除键值对

4. hash 类型

4.1 设置单个属性

4.2 设置多个属性

4.3获取指定的键所有的字段

4.4 获取一个字段的值

4.5 获取指定的多个字段的值

4.6 获取所有字段的值

4.7 删除字段,字段对应的值会被一起删除

4.8 删除整个hash数据,使用del

5. list类型

5.1从列表左侧插入数据

5.2在列表右侧插入数据

5.3在列表右侧插入数据

5.4删除指定元素

6.set类型

6.1添加元素

6.2获取元素

6.3删除元素

7.zset类型

7.1添加数据

7.2获取数据

7.3删除数据


1. 客户端和服务端命令
1.1 服务器端
  • 服务器端的命令为 redis-server
  • 可以使⽤help查看帮助⽂档redis-server --help
  • 服务器操作
    • ps aux | grep redis 查看redis服务器进程
    • sudo kill -9 pid 杀死redis服务器
    • sudo redis-server /etc/redis/redis.conf指定加载的配置文件
1.2 客户端
  • 客户端的命令为redis-cli
  • 可以使⽤help查看帮助⽂档redis-cli –help
  • 连接redisredis-cli
  • 运⾏测试命令ping
  • 切换数据库 select 10
2. 数据操作

Redis是key-value的数据结构,每条数据都是一个键值对。键的类型是字符串,并且键不能重复。

Reids中的数据类型:

✨ 字符串string

✨哈希hash

✨ 列表list

✨集合set

✨ 有序集合zset

2.1 普通键值对保存

如果设置的键不存在则为添加,如果设置的键已经存在则修改。

set key value
2.2 设置键值以及过期的时间
setex key seconds value
2.3 设置多个键值
mset key1 value1 key2 value2 ...
2.4根据键获取值,如果不存在返回nil
get key
2.5 根据多个键获取多个值
mget key1 key2 key3 ...
3. 键命令
3.1查看所有键

查看所有键: keys pattern

// 语法keys pattern// 查看所有键keys *
3.2查看名称中包含n的键
keys n*
3.3判断键是否存在,如果存在返回1,否则返回0
// 语法exists key// 判断键 name是否存在exists name
3.4查看键对应的value类型
// 语法type key// 判断age对应的值的类型type age
3.5删除键值对
// 语法del key1 key2 ...// 删除age与genderdel age gender
4. hash 类型

hash用于存储对象,对象的结构为属性、值,值的类型为string。

4.1 设置单个属性
// 语法hset key field value// 设置user的属性为name,name对应的值为xiaominghset user name xiaoming
4.2 设置多个属性
// 语法hmset key field1 value1 field2 value2 ...// 设置键为student的字段name对应的值为xiaoming字段age对应的值为12hmset student name xiaoming age 12
4.3获取指定的键所有的字段
// 语法hkeys key// 获取键student中的所有字段hkeys student
4.4 获取一个字段的值
// 语法hget key field// 获取student中的name字段所对应的值hget student name
4.5 获取指定的多个字段的值
// 语法hmget key field1 field2 ...// 获取student 中的name、age的值hmget student name age
4.6 获取所有字段的值
// 语法hvals key // 获取student中的所有字段的值hvals student
4.7 删除字段,字段对应的值会被一起删除
// 语法hdel key field1 field2 ...// 删除student中的age字段hdel student age
4.8 删除整个hash数据,使用del
del student
5. list类型
5.1从列表左侧插入数据
// 语法lpush key value1 value2 ...// 从键为name的列表左侧插入数据a、b、clpush name a b c
5.2在列表右侧插入数据
// 语法rpush key value1 value2 ...// 从键为name_2的列表的右侧插入数据a、b、crpush name a b c
5.3在列表右侧插入数据
// 语法lrange key start stop'''start、stop为元素的索引1. 索引从左侧开始,第一个元素为02. 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素'''// 获取列表name_1、name_2中的所有元素lrange name_1 0 -1lrange name_2 0 -1
5.4删除指定元素
'''根据索引count删除对应的值 1. count > 0: 从左往右删除 2. count < 0: 从右往左删除 3. count = 0: 删除所有'''// 语法lrem key count value// 创建测试列表并左插入三组a、blpush test_list a b a b a b// 查看列表数据lrange test_list 0 -1// 从test_list列表中的右侧开始删除2个b字母lrem test_list -2 b// 查看删除效果lrange test_list 0 -1
6.set类型

✨ 集合类型是无序的,并且集合中的元素类型为string

✨集合中的元素具有唯一性,不能重复。

✨集合类型没有修改操作。

6.1添加元素
// 语法sadd key member1 member2 ...// 向键user_name的集合中添加元素:xiaoming、xiaoqiang、xiaodongsadd user_name xiaoming xiaoqiang xiaodong
6.2获取元素
// 获取所有元素 smembers key// 获取键user_name集合中所有的元素smembers user_name
6.3删除元素
// 删除指定元素srem key// 删除指定键user_name中的元素:xiaomingsrem user_name xiaoming
7.zset类型

zset类型是一个有序集合,元素为string类型。

zset类型和无序集合一样,元素具有唯一性,不能重复,并没有修改操作。

在有序集合中的每个元素都会关联一个double类型score,表示权重,通过权重将元素从小​​​​​到大排序。

7.1添加数据
// 语法zadd key socre1 member1 socre2 member2 ...// 向键user_name_2集合中添加元素: liming、wangmei、xiaoming、xiaoqiang权重分别为4 5 6 3zadd user_name_2 4 liming 5 wangmei 6 xiaoming 3 xiaoqiang
7.2获取数据
// 语法zrange key start stop'''start、stop为元素的索引1. 索引从左侧开始,第一个元素索引为02. 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素'''// 获取键user_name_2集合中的所有元素zrange user_name_2 0 -1
7.3删除数据
// 语法zrem key member1 member2 ...// 删除user_name_2集合中的元素: zhangsanzrem user_name_2 zhangsan