redis数据库

  非关系型数据库Redis也叫缓存数据库也是内存数据库

  五种数据结构

    字符串 string

    列表 list

    集合 set

    有排序的集合 zset

    散列 hash

Redis的应用场景

  ●缓存

  使用Redis可以建立性能非常出色的缓存服务器,查询请求先在Redis中查找所需要的数据,如果能够查询到(命中)则直接返回,大大减轻关系型数据库的压力。

  ●数据临时存储位置

  使用token (令牌)作为用户登录系统时的身份标识,这个token就可以在Redis中临时存储。

  Redis常作为缓存,作为临时数据,制造测试数据

Redis有什么好处

  ●查询快

  ●还可以设置数据的过期时间

  ●现在很多公司都用redis因为redis能抗住高并发

  高并发=大量的用户同时访问场景:火车票刚开的时候抢票,618. 双11.双12, 世界总决赛直播平台

token存放在cookie里面,浏览器存放内容有两个一个叫做header一个叫做cookie

Redis命令

  切换数据库

    Redis默认有16个数据库,使用select进行切换,数据库索引从0开始

    select 0

  KEY操作

    查看所有的key

    keys *

  string

    SET KEY VALUE [EX SECONDS] [PX MILLISECONDS] [NX|XX]

    给KEY设置一个string类型的值。

    EX参数用于设置存活的秒数。

    PX参数用于设置存活的毫秒数。

    NX参数表示当前命令中指定的KEY不存在才行。

    Xx参数表示当前命令中指定的KEY存在才行。

    GET KEY

    根据key得到值,只能用于string类型。

    APPEND KEY VALUE

    把指定的value追加到KEY对应的原来的值后面,返回值是追加后字符串长度

    STRLEN KEY

    直接返回字符串长度

    INCR KEY

    自增1 (要求:参与运算的数据必须是整数且不能超过整数Integer范围)

    DECR KEY

    自减1 (要求:参与运算的数据必须是整数且不能超过整数Integer范围)

  list

    LPUSH key value [value ...]

    针对key指定的list,从左边放入元素

    RPUSH key value [value ...]

    针对key指定的list,从右边放入元素

    LRANGE key start stop

    根据list集合的索引打印元素数据

    正着数: 0,1.2,3....

    倒着数: -1,-2.-3....

    LLEN key

    返回list集合的长度

    LPOP key

    从左边弹出一个元素。弹出=返回+删除。

set

  SADD key member [member ..]

  给key指定的set集合中存入数据,set会自动去重

  SMEMBERS key

  返回可以指定的set集合中所有的元素

  SCARD key

  返回集合中元素的数量

  SISMEMBER key meaber

  检查当前指定member是否是集合中的元素

  返回1:表示是集合中的元素

  返回0:表示不是集合中的元素

  SREM key member [member ...]

  从集合中删除元素

  SINTER key [key ...]

  将指定的集合进行“交集"操作

  集合A: a,b,c

  集合8: b.c,d

  交集: b,c

  SINTERSTORE destination key [key ..]

  取交集后存入destination

hash

  HSET key field value

  插入新数据返回1修改旧数据返回0

  同样的key ,同样的field,新的value,添加这个对应的第二个内容

  HGETALL key

  HGET key field

  获取这个value

  HLEN key

  HKEYS key

  HVALS key

  HEXISTS key field

  HDEL key field [field ...]

  HINCRBY key field increment

  HMNGET key field [field ...]

  HMSET key field value [field value ...]

  HSETNX key field value

  要求field是新建的

zset

  ZADD key [NX|0x] [C] [INCR] score member [score member ..]

  ZRANGE key start stop [WITHSCORES]

  ZCARD key

  ZSCORE key member

  ZINCRBY key increment member

  ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

  在分数的指定区间内返回数据

  min参数可以通过

  -inf表示负无穷

  max参数可以通过

  +inf表示正无穷

  默认是闭区间

  可以通过(min (max形式指定开区间,例如: (50 (80

  ZRANK key rember

  先对分数进行升序排序,返回nember的排名。 排名从0开始

zset和set都不允许value重复

面试问题

  看你简历写了redis

  redis是非关系数据库, 数据是key跟value主要使用的数据类型是string, 它询速度特别快,(为什么快,redis是key和value, 他可以直接根据key找到这个value就像在mysq通过主键查询一样快)redis是基于内存操作的,比硬盘快

  直接说我大概知道redis跟mysql的一点区别

  redis是非关系型数据库,数据是存在内存的,mysq是存在硬盘的,

  mysq|支持索引和外键,但是redis不支持

  mysql有很好的权限控制,redis就是ip和密码

  redis有五个数据类型,string list set zset hash

  string是字符串

  list是一个有序列表,可以左插入和右插入

  set是个集合,不可以放重复数据

  zset是一个有分数的集合

  hash是key和value中value又嵌套了一个key value

  因为string在项目中用的比较多,我还熟悉了一下string命令的命令,比如放进去用set key value取出来呢get这个key

  项目中:

  登录的时候会有一个令牌验证, 这个token就是存在redis里面的, 以后做其他操作的时候,直接在redis拿这个token就好了。

  后端令牌验证,登录之后,会给一个token: 414125etdggdscx23432532wtFJF5@# ¥@fafsasf以后做任何操作都带着这个token去操作就不需要继续登录

  redis的其他问题,数据持久化,它持久化不如mysql, 如果面试问你持久化,你说我知道这个地方它不如mysql数据库,但是其他具体的我不了解,这个工作中是开发用的,我没有用过。

  • 30
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值