Redis的内容

先导:安装各种软件
1.windows-redis

有一个图案界面就代表成功了。

2.Redis Desktop Manager(可视化界面)
新连接设置》
输入你的名字,地址和端口号

然后进行测试
出现链接Redis服务器成功就代表ok。

3.配置redis数据库连接-测试

面试题1:关系型数据库和非关系型数据库最明显的区别:
关系型数据库具有固定的表结构。

非关系型数据库不具有固定的表结构,
一般只具有key-value键值对的存储结构。

面试题2: redis存储的数据类型有几种?
key只有一种是string类型,
而value有5种类型:
1.string类型2.list类型 3.set类型 4.hash类型 5.zset类型

1. 定义
Redis 是一个高性能的key-value数据库,key是字符串类型。

2.核心特点:

单进程:
Redis的服务器程序采用的是单进程模型来处理客户端的请求。
对读写时间的响应是通过对epoll函数的包装来做到的。

3.数据类型:

键的类型是字符串

值的类型分为五种:
字符串string,哈希hash,列表list,无序集合set;有序集合zset

3.1 string类型(最常用和重要)

3.1.1 简介
字符串(string)是Redis最基本的类型,
可以存储String,Integer,Float型的数据,
甚至是二进制数据,一个字符串最大容量是512M

3.1.2 set命令

set 键值
》如果键不存在,就是添加
》如果键存在,就是修改

设值取值
set key value

set name marong
set name asdf

如何在可视化界面写代码?
在这里插入图片描述
在这里插入图片描述

-1永久存在 TTL

设置过期时间

setex pwd 30 123456

TTL : 30 30秒 加载完毕之后就消失了,刷新之后就能看出
在这里插入图片描述
清除所有键值对的方法
在这里插入图片描述
设置多个键值对
mset key1 value1 key2 value2 key3 value3

3.1.3 追加值
append key value
》成功是下面有长度
添加是在key键对应的value值后面添加
在这里插入图片描述
3.1.4 get命令

获取单个值 》get key1
获取多个值 》mget key1 key2

3.1.5 del命令
》 0就是没删除 名字不存在
》 数字接收对应删除的个数

删除某个键 》del key1

删除多个键 》del key1 key2

3.1.6 keys命令(查找键)

mset a 1 b 2 c 3
keys *

3.1.7 exists命令(判断键是否存在)

如果存在返回1,不存在返回0
exists key

3.1.8 type命令(查看键对应值的类型)

type key

举例:
type a
“string”

3.1.9 expire命令(设置键过期时间)
expire key seconds

这个是根据已经有键值对的时间进行修改
和上一个不一样。

案例:
set name zz
expire name 10

3.1.10 TTL 命令(查看键有效时间)
TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

返回值:
当 key 不存在时,返回 -2 。
当 key 存在但没有设置剩余生存时间时,返回 -1 。
否则,以秒为单位,返回 key 的剩余生存时间。

举例:
setex aaa 30 40
ttl aaa

3.2 list类型

3.2.1 简介
(1)列表中的值(value)类型为字符串;

(2)字符串List,底层实现上不是数组,而是链表,
也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别的;
其弊端是:元素定位比数组慢

3.2.2 添加

从左侧插入值:
lpush key value1 value2
从右侧插入值:
rpush key value1 value2

思考题
lpush aa a b c
在这里插入图片描述
rpush bb a b c
在这里插入图片描述
画图观察:
在这里插入图片描述
在这里插入图片描述
3.2.3 获取

返回列表里指定范围内的值
(1) 索引从左侧开始,第一个值的索引为0;
(2) 索引可以是负数,表示从尾部开始计数,如-1表示最后一个值;
(3) start,stop为要获取值的索引。
语法:lrange key start stop

例如:
(1)获取列表所有值
lrange key 0 -1

举例:
asdf:0>lrange aa 0 -1
c
b
a

(2)从第三个元素开始获取到最后的值
lrange key 2 -1

3.2.4 修改

设置指定索引位置的值
(1)索引从左侧开始,第一个值的索引为0;
(2)索引可以是负数,表示从尾部开始,-1代表最后一个值。
语法:lset key index value

举例:
lset aa 2 f
=>第3位原本是a
a 》f 现在变成f了

3.2.5 删除

删除指定值
(1) 将列表中前count次出现的值移除
(2) count>0:从头往尾删除
(3) count<0:从尾往头删除
(4) count=0:删除所有值

语法:lrem key count value

(1)举例:
rpush born2 0 1 2 3 4 5 0 1 2 1 0 1 0 2 3 4 1 0 1 1 2

(2)查询列表
lrange born2 0 -1

(3)案例2:从键列表右侧开始删除1个2
lrem born2 -1 2 -1从右侧开始删 删1个2

(4)查询列表
lrange born2 0 -1

(5):从键列表左侧开始删除2个2
lrem born2 2 2

(6)查询列表
lrange born2 0 -1

3.3 set类型

3.3.1 简介
字符串Set,无序不可重复,是通过HashTable实现的。

3.3.2 举例
1.sadd:添加元素
格式是SADD KEY_NAME VALUE1…VALUEN

127.0.0.1:0>sadd myset v1
127.0.0.1:0>sadd myset v1 #不得重复
》0就是没添加成功
127.0.0.1:0>sadd myset v2 v3 v4 v1 #可以设置多个值
》 3 添加成功 v1就不行

2.smembers:获取集合中所有元素
格式是SMEMBERS key
127.0.0.1:0>smembers myset #查询myset中的值有哪些

3.sismember:判断元素是否在集合中
格式是SISMEMBER KEY VALUE
127.0.0.1:0>sismember myset v1
成功 返回值为 1

4.srem:删除元素
格式是SREM KEY MEMBER1…MEMBERN
127.0.0.1:0>srem myset v1

5.scard:获取集合中元素个数
格式是SCARD KEY_NAME
127.0.0.1:0>scard myset

6.spop:弹出元素格式是SPOP key [count]
随机选出然后删除
127.0.0.1:0>spop myset

7.smove:移动元素
格式是SMOVE SOURCE DESTINATION MEMBER

smove kj10 kj11 v9
kj10 就没了 到了kj11 先创建如果没有的话。

3.4 Hash哈希类型

3.4.1 简介
按Hash方式来存放字符串

key 对应的value里还有个小key对应的小value

3.4.2 实战

1.设置值
格式是HSET KEY_NAME FIELD VALUE
hset user id 999
在这里插入图片描述
2. hmset:同时设置多对值
格式是HMSET KEY_NAME FIELD1 VALUE1 …FIELDN VALUEN

hset user name z pwd 123458

3.hgetall:获取该key下所有的值
格式是HGETALL KEY_NAME

hgetall user

4.hget:获取单个key的值
格式是HGET KEY_NAME FIELD_NAME

hget user name

5.hmget:同时获取多个值
格式是HMGET KEY_NAME FIELD1…FIELDN

hmget user name pwd

6.hdel:删除某个项
格式是HDEL KEY_NAME FIELD1… FIELDN

hdel user name

3.4 zset类型(有序集合)

3.4.1 简介
字符串Set,有序且不可重复,根据Score来排序。

3.4.2 实战

1.zadd:添加元素
格式是ZADD KEY_NAME SCORE1 VALUE1… SCOREN VALUEN,
score和项可以是多对,score可以是整数,也可以是浮点数,
还可以是+inf表示正无穷大,-inf表示负无穷大
案例:
zadd kj 10 v1 v1是key 10是值
zadd kj 12 v2 40 v3 60 v4 20 v5

结果是从小到大排序

2.zrange:获取索引区间内的元素
格式是ZRANGE key start stop [WITHSCORES]

zrange kj 0 -1
zrange kj 0 -1 withscores (withscores带后面的参数)

3.zrangebyscore:获取分数区间内的元素
格式是ZRANGEBYSCORE key min max [WITHSCORES]

zrangebyscore kj 0 20 #代表大于等于0,小于等于20
zrangebyscore kj 0 (20 #代表大于等于0,小于20

zrangebyscore kj 0 (20 withscores #代表大于等于0,小于20,带分数
zrangebyscore kj 20 +inf withscores #代表大于等于20,带分数
zrangebyscore kj (20 +inf withscores #代表大于20,带分数

4.zrem:删除元素
格式是ZREM key member [member …]

zrem kj v1 v2 #删除v1,v2
zrangebyscore kj 0 +inf withscores #获取所有的大于0的值和分数

5.zcard:获取集合中元素个数
格式是 ZCARD KEY_NAME

zcard kj

注意点:

存汉字用序列化 不用写汉字 以后用json

登录校验是放在redis中。

----2021.11.24&11.25

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值