django

Django-32 Redis1

2021-12-16  本文已影响0人  JuliusL

坑1:redis执行redis-service /etc/redis.conf卡死

解决:要把redis.conf配置里面的daemonize的no改成yes

配置文件路径:/etc/redis.conf
mysql配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf

备份:cp redis.conf redis_bak.conf
修改备份文件的用户组为redis:chown redis:root redis_bak.conf

添加密码

  1. 修改redis.conf配置:500行左右:requirepass 密码
  2. 关闭redis
    /usr/bin/redis-cli shutdown
    or
    kill -9 PID
  3. 启动redis redis-server /etc/redis.conf
  4. 验证:redis-cli -a 密码
    ping 返回pong就是成功了。

远程连接

  1. 注释掉本地IP地址绑定
    69行: # bind 127.0.0.1 ::1
  2. 关闭保护模式(把yes改为no)
    88行:protected-mode no
  3. 重启redis服务
  4. 客户端连接试一下:redis-cli -h 10.0.8.10 -a 密码

命令介绍

基础概念

1、字符串、数字,都会转为字符串来存储
2、以二进制的方式存储在内存中
注意:

常用命令

数值操作

应用场景

缓存

mysql数据存储到redis字符串类型中

并发计数-点赞/秒杀

利用redis单进程单线程特点,并发问题转为串行问题

带有效期的验证码

借助过期时间,存放验证码;到期后自动消亡

过期时间

默认情况下,key没有过期时间,需要手动指定
方案1:直接用set的ex参数
set key value ex 3
方案2:使用expire通用命令
1,set key value
2,expire key 5 # 5秒
3,pexpire key 5 # 5毫秒

检查过期时间

redis删除过期key机制

每个redis数据库中,都会有一个特殊容器负责存储带有过期时间的key以及它对应的过期时间,这个容器称为“过期字典”。
针对过期字典中的key,redis结合,惰性删除和定期删除两大机制,有效删除过期数据。

最大内存检查

最后一道保险 - maxmemory 配置选项
一旦内存量超过最大限制,redis会在执行命令时触发内存淘汰(需手动在redis.conf中激活maxmemory配置项)
主流淘汰机制如下:
默认(no-enviction):禁入大多数写命令
volatile-lru:从已设置过期时间的内存数据集中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的内存数据集中挑选即将过期的数据淘汰
volatile-random:从已设置过期时间的内存数据集中任意挑选数据淘汰
allkeys-lru:从内存数据集中挑选最近最少使用的数据 淘汰
allkeys-random:从数据集中任意挑选数据淘汰

数据类型-列表

1、 元素是字符串类型
2、列表头尾增值快,中间增删慢,增删元素是常态
3、元素可重复
4、最多可包含2^32-1个元素
5、索引同python列表

增加

查看

删除

更新

list应用场景

1,存储微博评论,做切割,只保留最新的xx个
2,生产者消费者模型,做中间层,存放生产者的任务

上一篇下一篇

猜你喜欢

热点阅读