Redis

2023-10-17 10:01:50 浏览数 (1)

Redis

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。 Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

基本命令

1. 连接本地服务

  • redis-cli
  • redis-cli --raw (解决中文乱码)
  • redis

2. 连接远程服务

(主机为 127.0.0.1,端口为 6379,密码为 mypass )

  • redis-cli -h 127.0.0.1 -p 6379 -a "mypass"

3. 查看所有key

  • keys pattern
    • keys key
    • keys key_*

4. key是否存在

  • exist key

5. 查看key的类型

  • type key

6. 删除key

  • del key

字符串String

key和value都是字符串形式,一对一

增、改

  • 设置指定key的值
    • set key value
  • 设置多个key的键值对
    • mset key1 value1 key2 value2...

  • 获取指定key的值
    • get key
  • 获取多个key的值
    • mget key1 key2 ...

哈希Hash

key - field - value 映射表的关系

举例 : key 是user

字段名不可以重复

field value name zhangsan sex 男 age 18

hash 用来存储对象

增、改

  • 设置key下指定字段的值
    • hset key field value

  • 获取key下指定字段的值
    • hget key field
  • 获取key下所有字段
    • hkeys key
  • 获取key下所有字段和值
    • hgetall key
  • key下指定字段是否存在
    • hexists key field

  • 删除key下的字段
    • hdel key field

列表List

列表是字符串列表,key属于字符串

value 是一个列表,存储多个字符串,可以在头部插入,尾部插入,中间插入;可以有重复的值

例:key是user

value 是 name age sex 是一个列表,里边有索引从0开始,分别是0,1,2

增、改

  • 设置key下指定索引的值
    • lset key index value
  • 在列表头部添加值
    • lpush key value
  • 在列表尾部添加值
    • rpush key value
  • 在列表中指定列表值前插入值
    • linsert key before 指定列表值 value
  • 在列表中指定列表值后插入值
    • linsert key after 指定列表值 value

  • 获取key下指定索引下的列表值
    • lindex key index
  • 获取key下所有列表值
    • lrange key 0 -1

  • 移除列表元素值
    • lrem key count value
      • count = 0 ——> 删除所有值
      • count > 0 ——> 从头到尾删除该值
      • count < 0 ——> 从尾到头删除该值

集合Set

Set是 String 类型的无序集合

表示 value 存储多个字符串元素,而且没有顺序,并且没有重复的数据

例:key是user

value 是 name age sex 各个元素,里边没有索引,且不能重复

  • 集合增加成员
    • sadd key member

  • 获取集合下的所有成员
    • smembers key

  • 删除集合下指定成员
    • srem key member

有序集合Zset

Zset是 String 类型的有序集合

表示 value 存储多个字符串元素,和无序集合不同的是每个元素有自己的分数,然后按照分数排序

所以元素数据不能重复,但是元素下的分数可以重复

例:key是user

value 是 name age sex 各个元素,没有元素有自己的分数

如:name 1 age 4 sex 8

增、改

  • 有序集合增加成员
    • zadd key score member
  • 根据指定成员修改分数
    • zadd key score member

  • 获取集合下的所有成员
    • zrange key 0 -1
  • 获取集合下的所有成员及分数
    • zrange key 0 -1 withscores
  • 获取集合下的指定成员的分数值
    • zscore key member

  • 删除集合下指定成员
    • zrem key member

0 人点赞