zoukankan      html  css  js  c++  java
  • Redis下载安装以及String类型

    下载安装
      1. 官网:https://redis.io
      2. 中文网:https://www.redis.net.cn/
      3. window系统 3.2.100版本下载:https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100
        安装为window服务:

          打开cmd,进入到redis解压后的目录中,执行:redis-server.exe --service-install redis.windows.conf --service-name Redis3.0 --port 6379

        卸载掉服务:

          sc delete redis3.0

        启动服务:

          通过cmd指定到该redis目录,使用命令:redis-server.exe,也可以双击redis-server.exe运行
        启动客户端,连接服务器:

          启动另一个cmd,在该redis目录下,使用命令:redis-cli.exe,也可以双击redis-cli.exe运行  

          redis-cli.exe -h 127.0.0.1 -p 6379 -a requirepass
          (-h 服务器地址 -p 指定端口号 -a 连接数据库的密码[可以在redis.windows.conf中配置],默认无密码)

      常用的redis服务命令:
        卸载服务:redis-server --service-uninstall

        开启服务:redis-server --service-start

        停止服务:redis-server --service-stop

        重命名服务:redis-server --service-name name

        重命名服务,需要写在前三个参数之后

      windows下redis配置密码:

        打开 redis.windows.conf 或者 redis.windows-service.conf 找到 #requirepass foobared ,在下面添加 【requirepass 密码】

        在redis目录下执行 redis-server.exe redis.windows.conf 或者 redis-server.exe redis.windows-service.conf 启动服务

        redis-cli.exe -a 密码   |   redis-cli.exe -h 127.0.0.1 -p 6379 -a 密码

    redis的数据结构:
      redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构
      value的数据结构:
        1) 字符串类型 string
        2) 哈希类型 hash : map格式
        3) 列表类型 list : linkedlist格式。支持重复元素
        4) 集合类型 set : 不允许重复元素
        5) 有序集合类型 sortedset:不允许重复元素,且元素自动排序

    字符串类型 string
      1. 存储: set key value
      2. 获取: get key
      3. 删除: del key

      4.一次存多个数据:mset a 1 b 2 c 3  一次获取多个数据:mget a b c

      5.获取长度:strlen key

      6.追加信息到原始信息后面(原始信息不存在,则创建),返回的是数据总长度:append key value

      

      string 类型数据的扩展操作:

        大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键 id 必须保证统一性,不能重复。
        Oracle 数据库具有 sequence 设定,可以解决该问题,但是 MySQL数据库并不具有类似的机制,那么如何解决?
        解决方案:

          设置数值数据增加指定范围的值   

            incr key        每次执行加1
            incrby key increment   指定增加的数值
            incrbyfloat key increment  指定增加的浮点数值

          设置数值数据减少指定范围的值

            decr key        每次指定减1
            decrby key increment   指定减少的数值

          

        “最强女生”启动海选投票,只能通过微信投票,每个微信号每 4 小时只能投1票。
        电商商家开启热门商品推荐,热门商品不能一直处于热门期,每种商品热门期维持3天,3天后自动取消热门。
        新闻网站会出现热点新闻,热点新闻最大的特征是时效性,如何自动控制热点新闻的时效性。

        解决方案:

          设置数据具有指定的生命周期
            setex key seconds value  seconds表示多少秒
            psetex key milliseconds value  milliseconds表示毫秒

          Tips 2:redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作

      string 类型应用场景:

        主页高频访问信息显示控制,例如新浪微博大V主页显示粉丝数与微博数量

          

        解决方案:

          在redis中为大V用户设定用户信息,以用户主键和属性值作为key,后台设定定时刷新策略即可
            eg: user:id:3506728370:fans → 12210947
            eg: user:id:3506728370:blogs → 6164
            eg: user:id:3506728370:focuss → 83

            例如当粉丝数增加时执行:incr user:id:3506728370:fans  对于数据的变更更新更实时
          在redis中以json格式存储大V用户信息,定时刷新(也可以使用hash类型)
            eg: user:id:3506728370 → {"id":3506728370,"name":"春晚","fans":12210862,"blogs":6164, "focus":83}

            例如当粉丝数增加时,需要先读取json中的数据,修改后再重新存放回去,可以一次性修改多个数据

            

          Tips 3:redis应用于各种结构型和非结构型高热度数据访问加速

  • 相关阅读:
    第一章、欢迎进入C#编程世界
    如何解决Response.Redirect方法传递汉字丢失或乱码问题?
    使用Eval()绑定数据时使用三元运算符
    .net图片验证码生成、点击刷新及验证输入是否正确
    bzoj 5368: [Pkusc2018]真实排名
    bzoj 5372: [Pkusc2018]神仙的游戏
    bzoj 5369: [Pkusc2018]最大前缀和
    bzoj 1937: [Shoi2004]Mst 最小生成树
    Codeforces 981F. Round Marriage
    bzoj 2169: 连边
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12243850.html
Copyright © 2011-2022 走看看