1、五大基本数据类型和操作1.1 字符串-string命令说明set key value如果key还没有,那就可以添加,如果key已经存在了,那会覆盖原有key的值get key如果key还没有,获取为(nil),代表key没有被使用,如果key存在,可以获取对应key的值exists key判断某个key是否存在,返回Integer值1 代表存在,如果 exists car2 则返回0,不存在move key db将当前数据库存在的键值移动到其它数据库,其中db是数据库的序号expire key 秒钟为已经存在的key设置过期时间,注意过期之后,从内存中去掉了,是get不到的ttl key查看还有多少秒过期,-1表示永不过期,-2表示已过期type key命令用于返回 key 所储存的值的类型del key根据key值删除append key value根据key将其值进行字符串拼接strlen key根据key获取其值的字符串长度,字节数incr key对key对应数值进行加一操作,对应的字符串值必须是数值decr key对key对应数值进行减一操作incrby key 数值对key对应数值按照指定的值进行递增decrby key 数值对key对应数值按照指定的值进行递减getrange key 起始位置 结束位置获取指定区间内的值,类似between 。。。and的关系,起始位置为0,结束位置为-1 就是返回所有setrange key 起始位置 具体值设置指定区间内的值,具体值会从起始位置开始覆盖setex key 过期秒值 真实值设置带过期时间的key,动态设置 。setnx key value只有在 key 不存在时,才会设置 key 的值,如果已经存在了,不覆盖,设置不了;setnx key value如果返回0 代表没有设置成功,key对应值已经存在,如果返回1代表设置成功;这个就是redis的分布式锁命令,很重要;mset key1 val1 key2 val2 ....同时设置一个或多个 key-value 对mget key1 key2 key3 ....获取所有(一个或多个)给定 key 的值 。msetnx key1 val1 key2 val2 .....同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在1.2 列表-listlist操作起来类似于栈;
命令说明lpush key val1 val2 val3 ....从左侧开始存放元素,先进后出lrange key 起始位置 结束位置从左侧开始,指定范围获取元素,-1代表所有rpush key val1 val2 val3 ....从右侧开始存放元素,先进先出lpop key从左侧一次取出一个元素rpop key从右侧一次取出一个元素lindex key index按照索引下标获得元素(从左到右,左下标从0开始,如果是-1代表最后一个,-2代表倒数第二个)llen key获取集合元素个数lrem key 个数 具体的值从左往右删除指定个数等于具体值的元素,返回的值为实际删除的数量,个数0,表示删除全部给定的值ltrim key 开始index 结束index截取指定范围的值后再赋值给keyrpoplpush 源列表 目的列表移除列表的最后一个元素,并将该元素添加到另一个列表并返回lset key index value将key集合中的指定下标位置值改为valuelinsert key before/after 值1 值2在list某个已有 值1 的前后再添加具体 值2小结:
- 它是一个字符串链表,left、right都可以插入添加;
- 如果键不存在,创建新的链表;
- 如果键已存在,新增内容;
- 如果值全移除,对应的键也就消失了;
- 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了;
经验总结扩展阅读
- 2023年农历二月十七是黄道吉日吗
- 五 SpringBoot - Java8 新特性
- 2024年九月十七出生董姓女孩名字生辰八字五行查询
- 2024年九月十七出生蒋姓女孩名字生辰八字五行查询
- 2024年九月十七出生曾姓女孩名字生辰八字五行查询
- 2024年九月十七出生丁姓女孩名字生辰八字五行查询
- 2024年九月十七出生黎姓女孩名字生辰八字五行查询
- 王者荣耀七周年庆时间是什么时候
- 四 SpringBoot - 整合Mybatis,逆向工程,JPA
- 七杀格女命和劫财格女命 朋友相处要细致