Redis相关知识点

Redis有几种数据类型以及使用场景

首先redis支持五种数据类型

String
append key value 向key中添加字符串 如果不存在该key 那么就相当于set一个新值
strlen key 获取key 对中的 value 长度
incr key 相当于 +1 操作
decr key -1
incrby key 10 步数为10增长 DECRBY key 10 步数为10 减少
getrange key 0 3 相当于substring 截取字符串 0 -1 取得全部字符串
setrange key 2 sss 相当于replace 从索引2处开始替换
settex key 20 value 创建一个过期时间为20秒的 键值对 如果已存在则覆盖
setnx key value 不存在则添加,已存在则添加失败
getset key value 先获取再赋值
hash
127.0.0.1:6379> hset k4 kui 1 设置 k4 中的 map 中的 kui 为1
(integer) 1
127.0.0.1:6379> HGET k4 kui 得到值
hmset k4 name1 1 name2 2 name3 3批量设置
hmget k4 name1 name2 name3 批量获取
hgetall k4 获取全部
HDEL h4 kui 删除全部
hlen k4 获取键值对个数
HEXISTS k4 name1 判断是否存在
hkeys key 获取全部key
hvalue key 获取全部value
HINCRBY k4 name 5 增加5

hash更适合变更数据的存贮,以及对象的存储

redis内存是多大的

首先查看redis配置文件 ,如果配置文件中没有,那么默认在64位系统中不限制内存大小,在32位系统中最大内存为3g

工作中最好设置为内存的四分之三。

redis内存淘汰策略

在6.0版本中有八种淘汰策略
Redis相关知识点_第1张图片默认的是noeviction 等待缓存被打爆。
如果内存满了,不会赶走数据直接报错
redis过期键删除策略
如果一个健过期了是否马上被删除呢?
否。

  1. 定时删除
  2. 惰性删除
  3. 定期删除
    定时删除:redis不可能分分钟扫描键查看他是否过期。那样太消耗cpu了,拿时间换空间
    惰性删除:对内存不友好,键过期只要不被删除,就会一直占用内存,只有当再次访问的时候才会被删除,那空间换时间
    定期删除:每隔一段时间删除过期key,并通过限制操作执行时间和频率减少对cpu的使用。 但可能导致很多key没有被删除
    以上删除策略都有缺点那么redis提供了淘汰策略
    Redis相关知识点_第2张图片
    两个维度
    过期键筛选
    对所有键筛选
    四个方面
    LRU
    LFU
    Random
    ttl
    LRU
    Least recently use
    主要实现就是hash+链表

你可能感兴趣的:(redis,java)