栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis(备忘)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis(备忘)

1.数据类型

String类型简介:
        String类型是redis最基本的类型,一个key对应一个value,value最大为512M。String类型底层结构叫做简单动态字符串,是可以修改的字符串,类似以Java中的ArrayList。当村粗的value小于1M时,会成倍扩容现有的空间;超过1M时,则每次只会增加1M的空间。最大不超过512M。

String常用命令:
        set < key > < value > 添加键值对
        setnx < key> < value > 当key在数据库中不存在时,则会添加
        setxx < key > < value > 当key在数据库中存在时,则会添加    
        setex < key > < seconds > < value > 设置key的过期时间,单位为秒
        ttl < key > 查看当前key过期剩余时间
        get < key > 获取数据库对应key的value
        append < key > < value > 将给定的value追加到key的末尾
        incr< key > 将key中的数字+1(这里key对应的value必须是数字)
        decr< key > 将key中的数字-1(这里key对应的value必须是数字)
        incre/decre < key > <长度> 将key对应的value加减 "长度"
        mset < key > < value > < key > < value > ... 一次设置多个键值
        mget < key > < key > ... 一次获取多个键的值
        getrange < key > < start > < end > 获取值得范围,类似于java中的subString(),前包后包
        getset < key > < value > 以旧换新
redis列表:
        列表是单键多值,按照插入顺序排序的简单字符串列表。它的底层是一个双向链表,对两端的操作性能很高,对中间操作的性能偏低。
list常用命令:
        rpush/lpush < key > < value > <  value> ... 从右/左边添加插入一个元素
        rpop/lpop < key > 从右/左吐出一个元素(值在键在,值光键亡)
        lange < key > < start > < end > 根据索引返回列表元素(0,-1表示返回全部元素)
        rpoplpush < key1 > < key2 > 将key1右边突出的值追加在key2的右边
        lindex < key > < index > 根据索引下表获取元素(从左到右)
        llen < key1 > 获取列表长度
        linsert < key > before < value > < newvalue > 在value的后面插入newvalue
        lrem < key > < n > < value > 从左边删除n个value(从左到右)
        lset < key > < index > < value > 将key中下标为index的值替换为value
redisSet列表:
        Set数据机构是dict字典,使用hash表实现,类似于java中的hashSet。
set常用命令:
        sadd < key > < value > <  value> ... 添加元素,重复的元素会被忽略
        smembers < key > 查看key的所有元素
        spop < key > 随机从key吐出一个元素
        srandmember < key > < n > 随即从集合中取出n个值,不会删除
        smove < key1 > < key2 > < value > 把集合一个元素一动到另一个集合
        sinter < key1 > < key2 > 取两个集合的交集元素
        sunion < key1 > < key2 > 取两个集合的并集
        sdiff < key1 > < key2 > 取两个集合的差集元素
redisHash:
        redisHash是一个键值对集合,这个键值对中的值是:一个filed,对应一个value的映射表,适合存储对象,类似于java中的Map。
hash常用命令:
        hset     ... 给key集合中的filed键赋值value
        hget  从key取出filed的value
        hexists 查看key中是否存在filed
        hkeys 列出key中所有的filed
        hvals  列出key中所有的value
        hincrby    为key中的filed加上increment
有序集合Zset:
        zset与set相似,不同之处在于有序集合每个成员都会关联一个评分,所有成员按照这个评分从低到高排序,集合中成员是唯一的,评分是可以重复的。
Zset常用命令:
        zadd      ...将元素value1,value2添加到key中
        zrange    [withscores] 返回下标start到end之间的元素,withscores表示带评分
        zrangebyscore    返回评分在min到max之间的的成员,从小到大排序
        zrangebyscore    返回评分在min到max之间的的成员,从大到小排序
        zincrby    为元素的score加increment
        zrem  删除集合下指定value的值
        zcount    统计评分区间的元素个数
        zrank  返回该值在集合中的排名,从零开始 

BitMaps:(redis6新增数据类型)
         Bitmaps本身不是一种数据类型, 实际上它就是字符串(key-value) , 但是它可以对字符串的位进行操作。可以把Bitmaps想象成一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量。
常用命令:
        setbit 设置Bitmaps中某个偏移量的值(0或1)
        bitcount  统计给定偏移量范围内1的数量
        bitop operation (and/or/not/xor) <保存的map> [key1 key2…]

HyperLogLog:
        Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。
基数:比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。
常用命令:
        pfadd < element>  [element ...] 往hyperLogLog里添加指定元素,如果执行命令后基数发生变化,则返回1,否则返回0
        pfmerge [sourcekey...]  将一个或多个HLL合并后的结果存储在另一个HLL中,比如每月活跃用户可以使用每天的活跃用户来合并计算可得

Geospatial:
        GEO,Geographic,地理信息的缩写。该类型,就是元素的2维坐标,在地图上就是经纬度。redis基于该类型,提供了经纬度设置,查询,范围查询,距离查询,经纬度Hash等常见操作。
常用命令:
        geoadd< longitude>[longitude latitude member...]   添加地理位置(经度,纬度,名称)
        geopos  [member...] 获得指定地区的坐标值
        geodist  [m|km|ft|mi ] 获取两个位置之间的直线距离
        georadius< longitude>radius  m|km|ft|mi  以给定的经纬度为中心,找出某一半径内的元素

2.发布订阅

        redis发布订阅是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,redis可以订阅任意数量的频道。
        subscribe channel1                订阅频道一
        publish channel1 hellohello    向channel1发送消息hellohello 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/926494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号