目录

  • 一、Redis对key的操作
  • 二、五种数据类型
    • String类型
    • List(集合)
    • Set(集合)
    • Hash(哈希)
    • Zset(有序集合)
  • 三、三种特殊数据类型
    • geospatial(地理位置)
    • hyperloglog(优点:占用内存小)
    • Bitmap(位图)

一、Redis对key的操作

  • 判断key是否存在:exists key_name
  • 设置key的过期时间:expire key_name [过期的时间值](number类型)
  • 查看key的过期时间:ttl key_name
  • 获取所有的key: keys *

二、五种数据类型

String(字符串)

字符串类型操作:

  • 设置值:set key_name value
  • 获取值:get key_name
  • 追加字符串,如果当前的key不存在就会创建一个新的key: append key_name value
  • 获取字符串长度:strlen key_name
  • 截取字符串:getrange key_name [start index] [end index]
  • 指定的字符串覆盖给定key所储存的字符串值,覆盖的位置从偏移量 offset(数字类型) 开始:setrange key_name offset value
  • 为指定的key设置值及其过期时间,如果key已经存在,setex命令将会替换旧的值: setex key_name [expiration time] value
  • 先获取值再设置值:getset key_name value

数字类型操作:

  • number数字类型自增1:incr key_name
  • number数字类型减1:decr key_name
  • 增加指定的值:incrby key_name [具体的值]number类型
  • 减少指定的值:decrby key_name key_name [具体的值]number类型

批量操作:

  • 批量设置值:mset key_name1 value1 key_name2 value2 key_name3 value3
  • 批量获取值:
    • 方式1: mget key_name1 key_name2 key_name3
    • 方式2:msetnx key_name1 key_name2 key_name3 //这个是原子性操作,要么全部成功,要么全部失败。

List(集合)

  • 设置值:

    • 左边:lpush key_name value
    • 右边:rpush key_name value
  • 获取值:
    • 左边:

      • lrange key_name [start index] [end index]
      • lrange key_name 0 -1 获取所有的元素
  • 移除数据:
    • 左边:lprop key_name
    • 右边:rprop key_name
  • 根据参数count的值,移除列表中与参数value相等的元素:
    • lrem key_name [count] value

      • count > 0:从表头开始向表尾搜索,移除与value相等的元素,数量为count。
      • count < 0:从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
      • count = 0: 移除表中所有与value相等的值。
  • 根据索引获取元素:lindex key_name [index]
  • 获取集合的长度:llen key_name
  • 替换列表中指定下标的值,如果不存在就会报错:lset key_name [index] value
  • 在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。当列表不存在时,被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误: linsert key_name [before] || [after] oldvalue newvalue

Set(集合)

  • 设置值:sadd key_name value
  • 获取值:smembers key_name
  • 随机从集合中抽取数据:srandmember key_name
  • 随机从集合中抽取指定个数的数据:srandmemer key_name [number]
  • 移除元素:srem key_name value
  • 用于移除集合中的指定key的一个或多个随机元素,移除后会返回移除的元素: spop key_name
  • 判断值是否在集合中:sismember key_name value
  • 获取集合中的元素的个数:scard key_name
  • 集合之间操作:
    • 将值移动到另一个集合中:smove oldlist newlist value
    • 差集:sidff oldlist newlist
    • 交集:sinter oldlist newlist
    • 并集:sunion oldlist newlist

Hash(哈希)

  • 设置值:

    • 方式1:hset key_name filed1 value
    • 方式2:hsetnx key_name filed1 value //如果不存在则可以设置
    • 方式3:hsetnx key_name filed1 value //如果存在不能设置
  • 获取值:hget key_name filed1
  • 获取所有值:hgetall key_name
  • 删除集合中某一个字段的值:hdel key_name filed1
  • 获取集合中的元素的个数:hlen key_name
  • 判断key是否存在:hexists key_name
  • 获取所有的filed: hkeys key_name
  • 获取所有的值:hvals key_name
  • 自增:hincrby key_name filed1 1
  • 自减:decrby key_name filed1 1
  • 批量操作:
    • 设置值:hmset key_name filed1 value1 filed2 value2
    • 获取值:hmget key_name filed1 filed2

Zset(有序集合)

  • 设置值(number:排序的标识位,这个可以重复):zadd key_name [number] value
  • 设置多个值(number:排序的标识位,这个可以重复): zadd key_name [number] value2 [number] value3
  • 获取值:zrange key_name 0 -1
  • 排序:zrangebysocre key_name -inf +inf
  • 移除元素:zrem key_name value
  • 获取集合中元素的数量:zcard key_name
  • 获取指定区间的成员的数量:zcount key_name [start index] [end index]

三、三种特殊数据类型

geospatial(地理位置)

  • 添加城市的位置:geoadd china:city 116.40 39.90 beijing
  • 获取指定城市的经纬度:geopos china:city beijing chongqing
  • 获取两人之间的距离:geodist china:city beijing shanghai km
  • 获取指定半径范围之内的坐标:georadius china:city 110 30 1000 km
  • 根据元素寻找元素:georeadiusbymember china:city beijing 1000 km

hyperloglog(优点:占用内存小)

  • 设置值:PFadd key_name value1 value2 value3 value4 value5 value6
  • 获取数量:PFCOUNT key_name
  • 合并两个集合:PFMERGE 新集合 集合2 集合3

Bitmap(位图)

  • 记录周一到周五的打卡:setbit sign 0 1 // 0是周几 1 是否打卡
  • 查看某一天是否打卡:gitbit sign 3
  • 统计打卡的天数:bitcout sign

Redis-第五章节-8种数据类型的更多相关文章

  1. redis五种数据类型的使用(zz)

    redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...

  2. redis五种数据类型的使用

    redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ...

  3. redis五种数据类型的使用场景

    string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...

  4. Redis五种数据类型-设置key的过期时间

    1.redis命令客户端 [root@localhost bin]# ./redis-cli 127.0.0.1:6379> #是否运行着 127.0.0.1:6379> ping PON ...

  5. Redis安装及五种数据类型

    redis是非关系型数据库,也叫内存数据库.数据是键值对的形式,通过key查找value 安装Radis:6379 sudo apt-get update sudo apt-get install r ...

  6. Redis: Redis支持五种数据类型

    ylbtech-Redis: Redis支持五种数据类型 Redis支持五种数据类型:string(字符串) ,hash(哈希),list(列表),set(集合)及zset(sorted set:有序 ...

  7. Redis支持的五种数据类型

    redis支持的五种数据类型: 1.string(字符串) 2.hash(哈希) Redis hash 是一个键值(key=>value)对集合. Redis hash是一个string类型的f ...

  8. Redis学习笔记(3)—— 五种数据类型&keys的通用操作

    一.Redis数据结构介绍 redis是一种高级的key-value的存储系统,其中的key是字符串类型,尽可能满足如下几点: 1)key不要太长,最好不要操作1024个字节,这不仅会消耗内存还会降低 ...

  9. redis的五种基本数据类型

    redis基本数据类型 redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet 第一种String String类型是包含很多种类型的特殊类型,并且是二进制安全的.比如 ...

随机推荐

  1. 使用Canvas绘制分享海报

    这几天接到一个需求,需要将一个邀请链接转换为一个带有二维码并且能够分享出去的海报图,网上找了很多的方法,也踩了不少的坑,希望大家遇到类似的需求能够少走弯路.. 具体效果图如下: 效果图 首先我采用了 ...

  2. matlab双坐标轴设定

    clc; clear all; close all; x1 = 0:.1:40; y1 = 4 * cos(x1)./(x1 + 2); x2 = 1:.2:20; y2 = x2.^2 ./ x2. ...

  3. .net mvc 微信公众号 验证微信签名

    官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319&token=&lang=zh_CN ...

  4. 如何在iOS设备中配置S/MIME邮件签名证书

    本篇将介绍如何在iOS设备(如iPhone或iPad)上导入.配置并使用S/MIME邮件证书. 前置条件: iOS设备上已完成邮箱账号配置: 您的S/MIME邮件证书PFX/P12文件已导出备用. 步 ...

  5. 聊两句XSS(跨站脚本攻击)

    XSS(跨站脚本攻击),聊两句,五毛的. XSS的危害: 窃取Cookie,盗用用户身份信息 这玩意儿是大多数XSS的目标,也好解决,可以先治个标,直接设置HttpOnly=true ,即不允许客户端 ...

  6. vue-element-admin项目核心总结

    1.搭建项目 按照官方文档把整个项目下载下来,安装依赖包npm install, 然后npm run dev 启动项目. 2.项目自定义优化 删除不要的文件,启动项目登录后,发现里面有很多页面,对我们 ...

  7. Java 中的PO VO DTO BO

    PO 持久对象,数据: BO 业务对象,封装对象.复杂对象 ,里面可能包含多个类:DTO 传输对象,前端调用时传输 :VO 表现对象,前端界面展示. 当你业务足够简单时,一个POJO 也完全当做PO ...

  8. 十大经典排序算法最强总结(含Java、Python码实现)

    引言 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法.排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面 ...

  9. java中根据后端返回的数据加载table列表

    <%//引入 js @ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML& ...

  10. redis错误解决

    第一次运行redis-server的时候闪退 win+R运行cmd打开命令行 进入redis根目录 输入 redis-server.exe redis.windows.conf 查看运行状态 此时如果 ...