Redis笔记

Redis(Remote  Dictionary  Server)是一种非关系型数据库

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis 中有五种基本数据类型:

String(字符串)

  • String(字符串) 最简单的类型,可以包含任意的数据,比如整数、浮点数、JSON 字符串等。

  •  string 是 redis 最基本的类型,string 类型的值最大能存储 512MB, 一个 key 对应一个 value

  Redis 的 SETGET 命令

添加

set+ 键名+ 值

获取

get +键名

Redis笔记_第1张图片

删除

del +键名

List(列表)

  • List(列表):有序的字符串集合,可以重复添加元素,支持头部和尾部的插入、删除等操作。列表最多可存储 232 - 1 元素

列表相关的基本命令:

向列表添加元素

lpush 键名 值

Redis笔记_第2张图片

lrange  键名 起始位置 结束位置
lrange list 0 10

 

 

LINDEX  key  index
通过索引获取列表中的元素

 

 Set(集合)

  • Set(集合):无序的字符串集合,不允许重复元素,支持集合间的交集、并集、差集等操作。

  • 集合对象的编码可以是 intset 或者 hashtable。

  • Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
  • 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)
向集合添加一个或多个成员

sadd +键名 +值1

sadd +键名 +值1 +值2

查询集合中的所有成员

smembers +键名

Redis笔记_第3张图片

获取集合的成员数

scard +键名

Hash(哈希)

  • Hash(哈希):类似于 Java 中的 Map,包含键值对的集合,每个键值对都是一个字符串。
  •  Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
将多个 field-value (域-值)对设置到哈希表 key 中。

语法如下:

HMSET key field1 value1 field2 value2 field3 value3 ...

HMSET my_hash

HMSET的全称是"Hash Multi Set"。

获取哈希表中所有值。
  1. 使用HVALS命令获取哈希表中的所有值。语法如下:

    HVALS key

    其中,key是哈希表的名称。

  2. 例如,如果要获取名为my_hash的哈希表中的所有值,可以执行以下命令:

    HVALS my_hash

 删除一个或多个哈希表字段Redis笔记_第4张图片
查看哈希表 key 中,指定的字段是否存在。

获取存储在哈希表中指定字段的值。

获取在哈希表中指定 key 的所有字段和值

Redis笔记_第5张图片

# 获取哈希表中所有字段和值
HGETALL my_hash

# 将返回结果存储在一个临时的无序集合中(Set),这将自动去除重复的元素
SADD tmp_set "two" "three" "four" "field1"

# 获取无序集合中的所有成员(即去重后的结果)
SMEMBERS tmp_set

# 删除临时集合
DEL tmp_set

在这个示例中,我们通过SADD命令将返回结果中的所有字段名(包括重复的)存储在一个临时的无序集合中,Redis会自动去除重复的元素。然后使用SMEMBERS命令来获取无序集合中的所有成员,即去重后的结果。最后,使用DEL命令删除临时集合。


Sorted Set(有序集合)

  • Sorted Set(有序集合):与 Set 类似,但是每个元素都有一个分数(score),根据分数进行排序。

  • 有序集合的成员是唯一的,但分数(score)却可以重复。
  • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1
向有序集合添加一个或多个成员,或者更新已存在成员的分数

ZADD key score1 member1 [score2 member2]

获取有序集合(Sorted Set)中成员的数量

ZCARD key

计算有序集合(Sorted Set)中分数在给定范围内的成员数量

 

ZCOUNT key min max

在有序集合中对指定成员的分数加上增量(increment)

ZINCRBY my_sorted_set 5 member1

ZSCORE  key  member
返回有序集中,成员的分数值

Redis 有九种数据编码方式:

  1. int:整数编码。
  2. embstr:短字符串编码。
  3. raw:长字符串编码。
  4. hashtable:哈希表编码。
  5. ziplist:压缩列表编码。
  6. skiplist:跳跃表编码。
  7. intset:整数集合编码。
  8. quicklist:快速列表编码。
  9. stream:流数据编码。

Redis 有七种底层结构:

  1. 字符串对象(String Object):保存字符串值和字符串类型的键。
  2. 列表对象(List Object):保存链表、双端链表和快速链表。
  3. 哈希对象(Hash Object):保存键值对。
  4. 集合对象(Set Object):保存无序字符串集合。
  5. 有序集合对象(Sorted Set Object):保存有序字符串集合。
  6. 整数集合对象(Intset Object):保存整数集合。
  7. 跳跃表对象(Skiplist Object):保存有序字符串集合的跳跃表。

Redis 命令

redis启动命令
 

redis-cli

ping命令(查看服务是否运行)

表示成功

如果ping 发生如下情况

错误信息 "NOAUTH Authentication required." 表示Redis服务器要求进行身份验证,但连接没有提供正确的认证信息。

要解决这个问题,你需要提供正确的认证信息才能连接到Redis服务器。通常情况下,你可以在连接Redis时使用 AUTH 命令提供密码进行身份验证。

例如,如果你的Redis服务器设置了密码为 "your_password",你可以这样连接:

AUTH your_password 

确保在连接之前先进行身份验证,这样你就可以成功连接到Redis服务器并执行相应的命令了。

 

 

你可能感兴趣的:(redis,笔记,数据库)