【redis缓存】缓存预热

如果新闻数据量不大,在系统启动前直接灌入,如手工一次性批量插入缓存数据。

  • 写个 PHP 脚本(其他语言均可实现)、写个 shell 脚本来完成。
  • redis 批量插入数据(pipe mode),可以根据redis协议的格式生成出一个文件,然后批量导入。
     
    set news101 newscontent EX 200
    拆分成redis格式就是(注意换行是\r\n):
    *5 // 按空格拆分有几段
    $3 // “set”的字符串长度
    set
    $7 // “news101”的字符串长度
    news101
    $11 // “newscontent”的字符串长度
    newscontent
    $2
    EX
    $3
    200

    本地(127.0.0.1)myql  redis库 news表,结构内容如下:

    news.sql文件内容如下:

    select concat('*5','\r\n','$3','\r\n','set','\r\n','$',LENGTH(news_id)+4,'\r\n','news',news_id,'\r\n','$',LENGTH(news_title),'\r\n',news_title,'\r\n','$2','\r\n','EX','\r\n','$3','\r\n','200','\r') from news order by news_id

    直接在 navicat 里执行可看到如下结果:


  • 在命令行执行以下命令:

    mysql -h 127.0.0.1 -uroot -proot -D redis --skip-column-names --raw < news.sql | redis-cli --pipe

    --skip-column-names 不显示列名   --raw 原生输出,不做任何转义 


    查看redis(--raw 输出中文):

    redis-cli --raw
    
    127.0.0.1:6379> keys *
    news102
    news104
    news9012
    news101
    news103
    127.0.0.1:6379> get news9012
    我很长
    127.0.0.1:6379>

     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值