Redis基础解释+安装教程+五大数据类型+Jedis验证码

  • Redis  

  • Redis和Memcached的比较

    • make diskclean

    • redis -server

  •  

    • 在后台启动Redis

      • 改为yes

      • redis-server backup/redis.conf  

      • 连接库  redis-cli    

            •  shutdown  关闭redis

      • redis-cli shutdown  关闭redis

    • Redis默认有16个库

      • select 0-15  

    • 端口号6379 

    • 五大数据类型

      • keys *:查询当前 库中的key

      • exists xxx   :存在返回1 不存在返回0

      • set k1 v1:设置key

      • ttl k1:返回 -1 永不过期  返回-2表示已过期 其他值表示key剩余时间

      • type k1 :获取k1对于value的类型

      • del k1: 删除key

      • expire k2 10 :设置过期时间

    • 五大数据类型

      • String:最基本的数据类型

        • get <key>:获取value

        • set <key> <value>:添加key-value

        • append <key><value>:往key中value追加值

        • strlen <key>:获取value长度

        • setnx <key><value> :只有在key不存在的时候设置key的值

        • incr<key>:将key中储存的数字值加1  +只能对数字值操作,如果为空,新增值为1

        • decr<key>:将key中储存的数字值减1  +只能对数字值操作,如果为空,新增值为-1

        • incrby/decrby <key> <步长>:将key中存储的数字值增减。自定义步长

      • 示例:

        • set 会覆盖key的值  不希望覆盖可以setnx 

        • 原子性:

      • List

        • lpush/rpush <key> <value>:左右插入

        • lpop/rpop <key>  值在键在,值亡键亡

        • rpoplpush <key1> <key2>:从<key1>列表右边吐出一个值,插到<key2>左边

        • lrange <key> <start><stop> 按照索引下标获得元素(从左到右)

        • lindex <key><index> 按照索引下标获得元素(从左到右)

        • 获得列表长度:len <key>

        • linsert <key> before <value> <newvalue> 早value的前边插入新值

        • lrem <key> <n> <value>从左边删除n个value

      • set 去重

        •  

          • 模拟抽奖  不剔除

          • 求交集

        • 求并集

        • 求差集

      • hash类型

          •  

        • 方法:

          • hset <key> <field> <value>

          • hsetnx k1 name lisi   

      • zset

        • 逆序从大到小显示 zrangebyscore

        • 统计分数区间个数

    • Java的Redis 客户端Jedis

      • 向Redis中添加Stirng类型的数据

        • jedis.set("k7,"v7");

        • String v7=jedis.get("k7");

        • Set<String> keys=jedis.keys("*");

        • foreach

    • 作业

      • 动态手机验证码

        • 随机6位 验证码

      • 拼接向Redis中保存验证码的key

        • String codeKey=CondeConfig.PHONE_PREFIX+phoneNo+CondeConfig.PHONE_SUFFIX;

        • 生成6位验证码

          • String code=getCode(6);

        • 向手机号发送验证码

          • 创建Jedis

          • Jedis jedis=new Jedis(host,port);

          • 向Jedis中保存验证码,并设置有效时间为120秒

            • jedis.setex(codeKey,120,code);

          • 给前端浏览器响应一个字符串true

            •  response.getWriter().write("true");

          • 关闭redis

            • redis.close();

      • 补充功能

        • 校验

          • 在Redis中获取验证码用于校验

            • String codeKey=CondeConfig.PHONE_PREFIX+phoneNo+CondeConfig.PHONE_SUFFIX;

            • Jedis jedis=new Jedis(host,port);

            • String redisCode=jedis.get(codeKey);

            • 判断用户输入的验证码从Redis的验证码是否一致

            • if(inputCode.equeals(redisCode))

            • {

              • 将redis中保存的验证码清楚

              • jedis.del(codeKey);

              • 验证码正确给浏览器响应true

              • response.getWriter().write("true");

            • }

            • jedis.close();

        • 在SendCodeServlet中补充,每日最多发送3次的功能

          • //拼接一个计数器的key'

          • String countKey=CondeConfig.PHONE_PREFIX+phoneNo+CondeConfig.COUNT_SUFFIX;

          • String count=jedis.get(countKey);

          • if(count==null)

          • 第一次发送验证码,此时向Redis中保存计数器的值是1,并设置有效时间为24小时

          • {

            • jedis.setex(countKey,60*60*24,1);

          • }

          • else if("3".equals(jedis.get(countKey)))

          • {

          • response.getWriter().write("limit");

          • 关闭jedis

          • jedis.close();

          • return;

          • }

          • else {

            • jedis.incr(countKey);

          • }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值