Redis基础

本文详细介绍了Redis的基础知识,包括Redis的数据类型如字符串、哈希、列表、集合和有序集合,以及它们的常用操作命令。Redis作为内存数据库,因其高效读写速度和丰富的数据结构,常用于缓存、消息队列等场景。文章还提到了Redis的持久化、主从复制等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis基础

redis包中包含服务端和客户端

在这里插入图片描述

redis客户端和服务端的命令:

客户端:redis-cli -p 6379
服务端:redis-server redis.windows.conf

注意:

一个redis.windows.conf配置就是一个redis服务器。需要启动多个服务器时,只需要修改一下这个配置文件redis.windows.conf的名称,更改端口号,再用redis-server就可以启动。
在这里插入图片描述
在这里插入图片描述

启动redis

我使用的6380端口(redis默认的是6379端口,由于我在上面配置文件里配置了6380端口,所以我可以使用6380端口,也可以使用6379端口)
在这里插入图片描述
一定要在redis的安装路径下启动
在这里插入图片描述
这就启动成功了

redis的优点

1.读写速度快. 数据存放在内存中,数据结构类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
2.支持丰富的数据类型,string,hash,list,set,sorted。
3.支持简单事务,watch
4.丰富的特性:可以用于缓存,消息队列,按key设置过期时间,到期后自动删除
5.支持数据持久化(将内存数据持久化到磁盘),支持AOF和RDB两种持久化方式,从而进行数据恢复操作,可以有效地防止数据丢失
6.支持主从(master-slave)复制来实现数据备份,主机会自动将数据同步到从机

redis安装目录下重要文件

redis-benchmark 性能测试工具
redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复)
redis-check-dump 快照文件检测工具,效果类上
redis-cli 客户端
redis-server 服务端
redis.windows.conf redis配置文件,在启动redis服务器的时候,必须要指定配置文件,那么相当于于一个配置文件就是一个redis数据库服务器

redis基础命令

1.keys * //返回键(key)
2.keys list* //返回名以list开头的所有键(key)
3.exists list1 //判断键名为list1的是否存在 存在返回1, 不存在返回0
4.del list1 //删除一个键(名为list1)
5.expire list1 10 //设置键名为list1的过期时间为10秒后
6.通过这种有效期可以做到自动删除,其实有效期到了,也不是立马删除的,删除的时机是有配置文件决定的。
7.ttl list1 //查看键名为list1的过期时间,若为-1表示已过期 或 永不过期
8.move age 1 //将键名age的转移到1数据库中。
9.select 1 //表示进入到1数据库中,默认在0数据库
10.persist age //移除age的过期时间。
11.flushdb:删除所有的数据 清除当前所在库的所有数据
12.flushall 清空所有数据

redis数据类型

字符串型

set方法:设置key对应的值为string类型的value,如果该key已经存在,则覆盖key对应的value值。所以在redis中key只能有一个。
在这里插入图片描述
get:根据key获取value值
在这里插入图片描述
Setnx:设置一个不存在的字符串,返回0 表示设置失败,已存在。返回1 表示设置新值成功,nx是not exist的意思。
在这里插入图片描述
setex:设置字符串,同时设置有效期。ex—expire(有效期)
在这里插入图片描述
Setrange:替换字符串。
在这里插入图片描述
Mset:一次设置多个key-value,返回OK表示全部设置成功,返回0表示全部失败。如果存在则替换。m–multi
在这里插入图片描述
msetnx:一次设置多个不存在的key-value,返回1表示全部设置成功,返回0表示全部失败。
在这里插入图片描述
getset:获取原值,并设置新值
在这里插入图片描述
getrange:获取key对应value的子字符串
在这里插入图片描述
mget:一次获取多个key对应的value值,不存在返回nil
在这里插入图片描述
incr:对key对应的value做加1操作,并返回新值
在这里插入图片描述
incrby:与incr类似,加指定值,key不存在的时候会设置key,并认为该key原来的value=0
在这里插入图片描述
decr:对key对应的value做减1操作
在这里插入图片描述
decrby:对key对应的value减去指定的值
在这里插入图片描述
append:对key对应的vlaue字符串追加,返回新字符串的长度
在这里插入图片描述
strlen:获取key对应value的长度
在这里插入图片描述

Hash类型
Redis hash 是一个string类型的filed和value的映射表、它的添加、删除操作都是O(1)(平均操作)。Hash特别适合存储对象。相较于对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便存取整个对象。

1、hset:设置hash filed 为指定值,如果key不存在,则先创建。key存在则替换
在这里插入图片描述
2.hget:获取指定field字段的值
在这里插入图片描述
3、 hsetnx:设置hash filed 为指定值,如果key不存在,则先创建。如果存在则返回0表示设置失败。
在这里插入图片描述
4、hmset:同时设置hash的多个file
在这里插入图片描述
5、hmget:获取全部指定的hash filed,必须指定获取的key的名称
在这里插入图片描述
6、hincrby:对hash filed加上指定的值
在这里插入图片描述
7、hexists:测试指定的filed是否存在,返回1表示存在,返回0表示不存在
在这里插入图片描述
8、hlen:返回指定hash的field的数量
在这里插入图片描述
9、hdel 删除指定hash 的filed字段,返回1表示删除成功0:表示删除失败
在这里插入图片描述
10、hkeys:返回hash 的所有filed
在这里插入图片描述
11、hvals:返回hash的所有value
在这里插入图片描述

List类型
List是一个链表结构,主要功能是push、pop,获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作链表的头部或者链表尾部添加元素,这样list既可以作为栈,又可以作为队列。

1、lpush:在key对应list的头部添加字符串元素,返回list中元素的个数
在这里插入图片描述
2、lrange:获取list中的元素
在这里插入图片描述
如果查询的是一个不存在的list,会显示列表或集合为空
在这里插入图片描述
3、rpush:在key对应的list尾部添加元素
在这里插入图片描述
4、linsert:在key对应list的特定位置前或后添加字符串
在这里插入图片描述
5、lset:更改list中指定下标的元素,返回ok表示设置成功
在这里插入图片描述
6、lrem:从key对应list中删除n个和value相同的元素(n<0 从尾部删除,n=0 全部删除,n>0从头部删除。)
在这里插入图片描述
7、ltrim:保留list中指定范围的数据,其他的都不要了
在这里插入图片描述
8、lpop:从list的头部删除元素,并返回该元素
在这里插入图片描述
9、rpop:从list尾部删除元素,并返回该元素
在这里插入图片描述
10、rpoplpush:从第一个list的尾部删除元素,并添加到第二个list的头部
在这里插入图片描述
11、lindex 返回名称为key的list中index位置的元素------list[index]
在这里插入图片描述
12、llen:返回指定key对应list的长度<====> len(list)
在这里插入图片描述

Sets类型
Set是一个string类型的无序集合,不允许重复。Set是通过hash table实现的。添加、删除、查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集。

1、 sadd:向key对应的set集合中添加元素,返回1表示添加成功,返回0 表示失败
在这里插入图片描述
2、 Smembers:查看set集合中的元素
在这里插入图片描述
3、srem:删除key对应set集合中的元素,返回1表示删除成功 0表示失败
在这里插入图片描述
4、spop:随机删除set中的一个元素并返回该元素
在这里插入图片描述
5、sdiff:返回给定set集合的差集 (以在前的set集合为标准)
在这里插入图片描述
6、sdiffstore:返回所有给定set集合的差集,并将差集添加到另外一个集合中
在这里插入图片描述
7、sinter:返回所有给定集合的交集
在这里插入图片描述
8、sinterstore:返回所有给定集合key的交集,并将结果存为另一个key
在这里插入图片描述
9、sunion 返回所有给定集合的并集
在这里插入图片描述
10、sunionstore 返回所有给定集合的并集,并将结果存入另一个集合
在这里插入图片描述
11、smove:从第一个集合中移除元素并将该元素添加到另一个集合中。
在这里插入图片描述
12、Scard:返回set集合中元素的个数 llen(list) strlen (str) hlen(hash)
在这里插入图片描述
13、sismember:测试member元素是否是名称为key的set集合 返回1:表示是 0:不是
在这里插入图片描述
14、srandmember:随机返回set集合中的一个元素,但不删除该元素
在这里插入图片描述

Zset类型(sorted set)
Sorted set是set的一个升级版,他在set的基础上增加了一个顺序属性,这一属性在添加元素的时候可以指定,每次指定后,zset会自动重新按新的值挑战顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。操作key理解为zset的名字

1、zadd:向有序集合zset中添加元素并指定顺序,如果该元素已存在就更新元素顺序。
在这里插入图片描述
2、zrange:从zset集合中取元素 [withscores] 输出元素顺序号
在这里插入图片描述
3、zrem:删除zset集合中指定的元素
在这里插入图片描述
4、zincrby:若zset中已经存在元素member、则该元素的score增加
incrment否则向该集合中添加该元素,其score的值为increment
在这里插入图片描述
5、zrank:正序方式,获取指定元素的索引下标
在这里插入图片描述
6、zrevrank:逆序的方式获取指定元素的索引下标,rev–reverse
在这里插入图片描述
7、zrevrange:从zset集合中倒叙(score倒叙)获取元素
在这里插入图片描述
8、zrangebyscore:从zset集合中根据score顺序获取元素
在这里插入图片描述
9、zcount:返回集合中score在给定区间的数量
在这里插入图片描述
10:zcard:返回zset集合中所有元素个数
在这里插入图片描述
11、zremrangebyrank:删除集合中排名(下标)在给定区间的元素
在这里插入图片描述
12、zremrangebyscore::删除集合中顺序(score值)在给定区间的元素
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值