Redis五种常用数据类型

string

  • 字符串常用操作

    1.存入字符串键值对

     SET key value

    2.批量存储字符串键值对

     MSET key value [key value ...]

    3.获取一个字符串键值

     GET key

    4.批量获取字符串键值

     MGET key [key ...]

    5.删除一个键

     DEL key [key ...]

    6.设置一个键的过期时间(秒)

     EXPIRE key seconds
  • 原子加减

    1.将key中存储的数字值加一

     INCR key

    2.将key中存储的数字值减一

     DECR key

    3.将key所存储的值加上increment

    INCRBY key increment

    4.将key所存储的值减去decrement

    DECRBY key decrement
  • 单值缓存

    SET key value

    GET key

  • 对象缓存

    1.SET user:1 value(json格式数据)

    2.MSET user:1:name test user:1:balance 10086

    MGET user:1:name user:1:balance
  • 分布式锁

    SETNX product:10001 true 			//返回1代表获取锁成功
    SETNX product:10001 true 			//返回0代表获取锁失败
    ....执行业务操作
    DEL product:10001 		 			//执行完业务释放锁
    
    SET product:10001 true ex 10 nx 	//防止程序意外终止导致死锁
    

      

  • 计数器

    INCR article:readcount:{文章id}

    GET article:readcount:{文章id}

  • Web集群session共享

    spring session + redis 实现session共享

  • 分布式系统全局序列号

    //redis批量生成序列号提升性能
    INCRBY orderId 1000

hash

  • hash常用操作

    1.存储一个哈希表key的键值

    HSET key field value

    2.获取一个不存在的哈希表key的键值

    HSETNX key field value

    3.在一个哈希表key中存储多个键值对

    HMSET key field value [field value ...]

    4.获取哈希表key对应的field键值

    HGET key field

    5.批量获取哈希表key中多个field键值

    HMGET key field [field ...]

    6.删除哈希表key中的field键值

    HDEL key field [field ..]

    7.返回哈希表key中field数量

    HLEN key

    8.返回哈希表key中所有的键值

    HGETALL key

    9.为哈希表key中field键的值加上增量increment

    HINCRBY key field increment
  • 对象缓存 (类似map)

    HMSET user {userId}:name test {userId}:age 10
    
    HMGET user 1:name 1:age

list

  • list常用操作

    1.将一个或多个值value插入到key列表的表头(最左边)

    LPUSH key value [value ...]

    2.将一个或多个值value插入到key列表的表尾(最右边)

    RPUSH key value [value ...]

    3.移除并返回key列表的头元素

    LPOP key

    4.移除并返回key列表尾头元素

    RPOP key

    5.返回列表key中指定区间内的元素,区间以偏移量start和stop指定

    LRANGE key start stop

    6.从key列表表头弹出一个元素,若列表中没有元素,阻塞则等待timeout秒,如果timeout=0,一直阻塞等待

    BLPOP key [key ...] timeout

    7.从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待

    BRPOP key [key ...] timeout

set

  • set 常用操作

    1.往集合key中存入元素,元素存在则忽略,若key不存在则新建 SADD key member [member ...]

    2.从集合key中删除元素 SREM key member [member ...]

    3.获取集合key中的所有元素 SMEMBERS key

    4.获取集合key的元素个数 SCARD key

    5.判断member元素是否存在于集合key中 SISMEMBER key member

    6.从集合key中选出count个元素,元素不从key中不删除 SRANDMEMBER key [count]

    7.从集合key中选出count个元素,元素不从key中删除 SPOP key [count]

  • set运算操作

    1.交集运算 SINTER [key ...]

    2.将交集结果存入新集合destination中 SINTERSTORE destination key [key ...]

    3.并集运算 SUNION key [key ...]

    4.将并集结果存入新集合destination中 SUNIONSTORE destination key [key ...]

    5.差集运算 SDIFF key [key ...]

    6.将差集结果存入新集合destination中 SDIFFSTORE destionation key [key ...]

sorted Set(zSet)

  有序集合(sorted set)和集合(set)都不允许重复的成员;不同的是每个元素都会关联一个double类型的分数;redis正是通过分数来为集合中的成员进行从小到大的排序;有序集合的成员是唯一的,但分数(score)却可以重复;zSet的api与Set的api大致相同;

  1.向有序集合添加一个或多个成员,或者更新已存在成员的分数

     ZADD key score1 member1 [score2 member2] 2.通过索引区间返回有序集合指定区间内的成员 ZRANGE key start stop [WITHSCORES]

  3.移除有序集合中的一个或多个成员

     ZREM key member [member ...]

  4.通过分数返回有序集合指定区间内的成员

     ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]

  5.返回有序集合中指定成员的索引

     ZRANK key member,其中member按score值递增(从?到?)

原文地址:https://www.cnblogs.com/coder-zyc/p/12194682.html

时间: 2024-11-10 11:40:13

Redis五种常用数据类型的相关文章

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

string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符串的内容 应用场景: String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String, 也可以是数字:比如想知道什么时候封锁一个IP地址(访问超过几次).INCRBY命令让这些变得很容易,

Java 操作 Redis 五种数据类型

项目添加依赖 <!-- Redis 依赖 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> Java 怎么连接 Redis //连接 Redis @Test public void initConn01(){ S

Redis(一)、Redis五种数据结构

Redis五种数据结构如下: 对redis来说,所有的key(键)都是字符串. 1.String 字符串类型 是redis中最基本的数据类型,一个key对应一个value. String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据.如数字,字符串,jpg图片或者序列化的对象. 使用:get . set . del . incr. decr 等 127.0.0.1:6379> set hello world OK 127.0.0.1:6379> get hello

Redis五种数据结构详解

总结了下Redis五种数据结构的特定,本文主要参考 <redis in action>. 字符串 首先,字符串类型是最基础的类型,在redis里面字符串可以存储3中类型的值,字节串.整数.浮点数.这里整数或者浮点数是可以执行自增或自减的. 字符串常用命令 列表 列表类似于数据结构的链表,可以给定int范围去显示这个列表中的数据.列表允许用户从序列的两端推入或者弹出元素,获取列表元素,以及执行各种常见的列表操作. 列表经常用来存储任务信息.最近浏览过的文章或者联系人信息等. 列表的一个主要优点在

js五种基本数据类型:string, number, boolean, null, undefined

/** * 五种基本数据类型:string, number, boolean, null, undefined */ // undefined // 声明变量foo,未声明变量bar var foo; console.log(`typeof foo: ${foo}`, `typeof bar: ${bar}`); // typeof foo: undefined typeof bar: undefined if (foo === undefined) { // foo全等于undefined c

PHP V5 的五种常用设计模式

设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 "四人帮").所介绍的设计模式背后的核心概念非常简单.经过多年的软件开发实践,Gamma 等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板.使用这些模板或者说设计模式 意味着可以更快地设计更好的建筑物.同样的概念也适用于软件. 设计模式不仅代表着更

五种常用的图片格式及其是否有数据压缩的总结

五种常用的图片格式及其是否有数据压缩的总结 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:本文主要介绍五种最常见和最常用的图像格式:BMP,PNG,JPEG,JPEG200,以及GIF.在进行图像处理相关应用之前第一步首先是能够读取这些图像文件,虽然很多开发工具支持库比如OpenCV等已经帮助节省了这些工作的麻烦,便利的同时也使得开发人员不再熟悉这些基本的图像格式.本文的作用就在于将这五种常用的图像格式进行分条叙述,方便查阅. 内容借鉴主流图片格

五种常用的算法设计技巧之二:分治算法

一,介绍 分治算法主要包含两个步骤:分.治.分,就是递归地将原问题分解成小问题:治则是:在解决了各个小问题之后(各个击破之后)合并小问题的解,从而得到整个问题的解 二,分治递归表达式 分治算法一般都可以写出一个递归表达式:比如经典的归并排序的递归表达式:T(N)=2T(N/2)+O(N) T(N)代表整个原问题,采用了分治解决方案后,它可以表示成: ①分解成了两个规模只有原来一半(N/2)的子问题:T(N/2) ②当解决完这两个子问题T(N/2)之后,再合并这两个子问题需要的代价是 O(N) 递

Redis五种数据结构简介

Redis五种结构 1.String 可以是字符串,整数或者浮点数,对整个字符串或者字符串中的一部分执行操作,对整个整数或者浮点执行自增(increment)或者自减(decrement)操作. 字符串命令: ①get.获取存储在指定键中的值 ②set.设置存储在指定键中的值 ③del.删除存储在指定键中的值(这个命令可以用于所有的类型) 2.list 一个链表,链表上的每个节点都包含了一个字符串,虫链表的两端推入或者弹出元素,根据偏移量对链表进行修剪(trim),读取单个或者多个元素,根据值查