一位爱好技术的橘右京的哥哥橘左京

Redis——五大数据类型及基础知识(一)

  • Redis
    • 1.Redis命令
      • 1.1 常用String命令
      • 1.2 常用List命令
      • 1.3 常用Hash命令
      • 1.4 常用Set命令
      • 1.5 常用Sorted set命令
  • 总结

Redis

Redis是基于内存以key-value形式存储的非关系数据库,value支持String、list、set、zset、hash多种数据类型,字符串value最大为512MB,每一种数据类型都提供了不同的方法。具有持久化、过期时间、事务、哨兵等功能。

1.Redis命令

通用

1)keys * / keys XX*:查询所有key 或 匹配某前缀
2)flushall:清空所有key
3)clear:dos窗口清屏

1.1 常用String命令

1)mset:批量新增
2)mget:批量获取
3)append:字符串拼接
append key ‘XXX’

4)getrange:指定区间截取并获取 -1代表到最后

getrange key 0 5

5)setrange:指定索引替换值

setrange key 0 ‘J’

6)strlen:获取长度,中文字符会根据编码影响长度,单个字UTF-8占3个,GBK占两个

strlen key

7)NX/XX:

set key value NX|XX
①NX命令是当key不存在时,set才可生效;
②XX命令是当key存在时,set才可生效;

1.2 常用List命令

1)lpush/rpush:将value从左/从右依次写入

lpush key value1 value2 value3

2)lpop/rpop:将value从左/从右依次取出并删除元素

lpop key

3)lrange:将list值按照索引值顺序取(支持正反向索引)

lrange key 0 -1

4)lindex:将list值按照索引取值

lindex key -1

5)lset:替换list某索引的value(支持正反向索引)

lset key 索引值 value

6)linsert:在list的某个元素之前/之后插入元素

linsert key before/after pivot value

7)lrem:按次序删除list中几个名为XX的元素(支持正反向索引)

lrem key count value

8)ltrim:删除不在指定区间内的数据

ltrim key 1 -2

1.3 常用Hash命令

1)hset:单个写入数据

hset key name value

2)hget:单个获取数据

hget key name

3)hkeys:获取Key下Hash中所有的Key

hkeys key

4)hvals:获取Key下Hash中所有的Value

hvals key

5)hgetAll:获取Key下Hsah中所有Key Value

hgetAll key

6)hmset:批量写入数据

hmset key name1 value1 name2 value2 name3 value3

7)hmget:批量获取数据

hmget key name1 name2 name3

8)hincrby / hincrbyfloat:对Hash中数值类型Value执行计算

hincrbyfloat key field 值

1.4 常用Set命令

1)sadd:写入数据

sadd key value1 value2 value3

2)smembers:获取元素

smembers key

3)sinter:获取多个集合的交集

sinter key1 key2

4)sinterstore:获取多个集合的交集并赋值给一个key

sinterstore destination key1 key2

5)sunion:获取并集

sunion key1 key2

6)sdiff:获取差集

sdiff key1 key2

7)srandmember:随机获取集合中的元素

srandmember key count
①count为正数,取出元素若超出集合元素数量,不可重复取值,最多取出集合最大个数
②count为负数,取出元素若超出集合元素数量,可重复取值

8)spop:取出一个值并删除

hincrbyfloat key field

9)spop:取出一个值并删除

hincrbyfloat key field 值

1.5 常用Sorted set命令

1)zadd:写入数据

zadd key score1 value1 score2 value2

2)zrange:获取member / 获取score及member

zrange key 起始索引 结束索引
zrange key 起始索引 结束索引 withscores

3)zrevrange:倒叙获取member / 倒叙获取socre及member

zrevrange key 起始索引 结束索引
zrevrange key 起始索引 结束索引 withscores

4)zrangbyscore:根据socre获取起止分数内的member/score及member

zrangebyscore key 19 22
zrangebyscore key 19 22 withscores

5)zsore:根据member取出socre

zscore key member

6)zrank:根据member获取排名

zrank key member

7)zincrby:针对socre计算

zincrby key increment member

8)zunionstore:求多个key并集

zunionstore destination numkey key1 key2 :重复的member的score值相加
zunionstore destination numkey key1 key2 weights 1 0.5:赋0.5权重的key中score值/2操作,再与重复的相加
zunionstore destination numkey key1 key2 aggregate max:求并集并且取score最大值

总结

Redis提供了五大数据类型,解决了不同场景下数据的存储,在开发中要利用合理利用不同的数据格式,能够最大程度上节省内存空间,提升效率,

(一)Redis——五大数据类型及基础知识相关推荐

  1. note.. redis五大数据类型

    redis 五大数据类型使用 nosql介绍,由来 什么是nosql 阿里巴巴的架构 nosql 四大分类 redis入门 概述 redis 安装 (docker) 基础的知识 redis五大数据类型 ...

  2. Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)

    本文全面讲述了Redis的五大数据类型和使用场景,含完整实战案例,强烈建议收藏!! 大家好,我是冰河~~ 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部 ...

  3. Redis命令总结及其基础知识讲述

    Redis命令总结及其基础知识讲述 1.redis的不同之处 Redis拥有其他数据库不具备的数据结构,又拥有内存存储(这使得redis的速度非常快),远程操作(使得redis可以与多个客户端和服务器 ...

  4. Redis五大数据类型

    Redis五大数据类型 Redis数据类型 key + Østring Øset Ølist Øhash Øzset Redis五大数据类型 --Key Ø keys * • 查询当前库的所有键 Ø ...

  5. Redis五大数据类型常用命令

    Redis五大数据类型 Redis-Key 1.查看当前数据库的key keys * #返回当前数据库下的所有key 2.设置key set key value 3.获取key的value get k ...

  6. Redis五大数据类型(字符串对象(string)、列表对象(list)、哈希对象(hash)、无序集合(set)和Sorted Set数据类型(zset有序集合))

    Redis五大数据类型 一.String(字符串)数据类型 1.SET/GET/APPEND/STRLEN 2.INCR/DECR/INCRBY/DECRBY 3.GETSET 4. SETEX 5. ...

  7. 【数据存储】【Redis】第三章: Redis五大数据类型实现原理

    Redis五大数据类型实现原理 对于五大数据类型(String,list,Hash,Set,Zset)实现原理,Redis在底层用到了多种数据结构,通过数据结构来实现键值对,将数据结构创建了一个对象r ...

  8. 【Redis五大数据类型】

    Redis五大数据类型 前言 一.字符串String 1. set / get / del / append / strlen 2. incr / decr / incrby / decrby 3. ...

  9. redis学习-redis五大数据类型

    五大数据类型简介 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. 也就是例子中的k1 v1,k2 v2 s ...

最新文章

  1. 采用fdisk在linux进行分区操作
  2. 基于概率论的分类方法—朴素贝叶斯
  3. java nginx tomcat_Nginx + Tomcat (java )服务器部署
  4. mybatis generator使用总结
  5. R Markdown 使用方法笔记
  6. Android Studio生成签名文件和自动签名
  7. 支持x86架构的通用计算机,X86架构模式
  8. php使用switch语句编写程序,PHP控制语句之“switch”语句实例详解
  9. 神经网络搭建六步法扩展
  10. 凝胶渗透色谱的基本概念(一)
  11. Unity Spine 换装方案
  12. unity学习手记之角色动画
  13. 水下光通信实现(1)----LED驱动电路
  14. 计算机存储容量用K还是KB,计算机中容量单位B、KB、MB、GB和TB的关系
  15. Q3亏损收窄预计Q4季度实现盈利,趣头条走上盈利分水岭靠什么?
  16. html 超链接打开Excel,excel超链接打不开解决方法
  17. leetcode 174:地下城游戏
  18. 【tensorflow学习】Ftrl学习
  19. 中国35岁以上的程序猿哪去了?,基于android的app开发详细步骤
  20. Vue实现仿微信,如飘柔般顺滑的页面转场动画

热门文章

  1. android自定义刻度线,Android自定义控件之刻度尺控件
  2. CI持续集成系统环境---部署gerrit环境完整记录
  3. Unitimes程序员活动-戏精剧本杀
  4. cmd设置总是置顶_怎么将想要的窗口一直置顶 原来只要这简单的一步
  5. 数学考140,英语考70的感悟----《超级考验经验〉转贴
  6. ios设备使用socks代理_iOS 使用socks5代理服务器
  7. 教师资格证查询找不到服务器怎么办,教师资格证成绩查询页面打不开怎么办?...
  8. HTML中清除浮动的几种方法
  9. 手工检测SQL注入漏洞
  10. Spring Cloud Gateway 不小心换了个 Web 容器就不能用了,我 TM 人傻了