redis基本数据类型

redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet

第一种String

String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行储存,比如一张图片进行二进制储存,比如一个简单的字符串数值等等。

set和get方法:
设置值set  name realValue 
取值 get name
说明:set设置name的时候,如果name重复,设置的值会进行覆盖。

setnx 方法
设置值setnx name realValue 
说明:如果这个name已经存在,不会进行覆盖,直接返回0.如果name不存在才会插入新的值。

setex方法
设置值setex name time(秒) realValue 
说明:设置这个name的value在缓存中存在的过期时间,过了这个时间后返回nil。在redis中nil标示null的意思。

setrange方法:替换字符串
set email 123456@qq.com
setrange email 10 ww   表是从第几位开始替换成后面的字符串。
说明:此时把123456@qq.com替换成123456@qq.wwm

第二种Hash类型

Hash类型是String类型的filed和value的映射表,或者说是一个String的结合,他特别适合存储对象。相比较而言把一个对象存储在Hash类型中要比直接存储在String中更加节省空间。并方便存储整个对象,Hash类型也是我们工作中最常用的一种。

形如:hset user name ming  意思是一个Hash类型叫做user,这个user的属性name的值是ming。

使用hget来获取值   hget user  name 就能获取到这个对象中的name属性的值。

hmset可进行批量存储多个键值对。hmset user age 15 sex man

hmget可进行批量获取多个键值对。hmget user name age sex

Hash类型中同样也有hsetnx,他和setnx大同小异。

hincrby和hdecrby集合递增和递减。

hexists 如果存在返回1,不存在返回0

hlen 返回hash中所有键的数值。

hkeys返回hash中的所有键。

hvals 返回Hash中所有的值。

hgetall返回Hash中所有的键和值。

第三种List

List类型是一个链表结构的集合,其主要功能有push,pop获取元素等等。更详细的说List类型是一个双端链表结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素。List的设计非常简单精巧,既可以作为栈又可以作为队列。满足绝大多数要求。

lpush方法:从头部添加元素,(栈)先进后出。
设置值 lpush list hello   
说明:创建一个name为list的栈,并且入栈一个hello

rpush方法:从尾部添加元素(队列)先进先出
设置值lpush list2  hello  
说明:创建一个name为list2的队列,并且入栈一个hello

lrange方法:查看list中的值
 
linsert list2 before [集合的元素] [要插入的元素]

lset方法  将指定下标的元素替换掉

lrem方法:删除制定元素,并且返回删除元素的个数。

lpop方法:从List头部删除元素,并且返回删除的元素。

rpop方法:从List尾部删除元素,并且返回删除的元素。

llen方法:返回元素的个数。

lindex方法:返回名称为key的元素在List中的index位置的元素。lindex  list2 0 返回第一个元素

第四种Set类型

set集合是String类型的无序集合,set是通过hashtable实现的,对集合我们可以取交集,并集,差集。

sadd方法:向名称为key的set中添加元素。
小结:set集合不允许重复元素,smembers查看set中的所有元素。

srem方法  删除set集合元素。srem name 值

spop方法 随机返回删除的key

sdiff返回两个集合不同元素,哪个集合在前面就以哪个集合为标准。

sdiffstore 将返回的不同元素存储在另一个集合里面。 sdiffstore set3 set1 set2 。吧1和2的不同元素存储在3中

sinter 返回两个集合的交集。sinter set1 set2 返回set1中和set2中的交集元素。

sinterstore 将返回的交集存储在一个新的集合中

smove方法:从一个set集合中移动元素到另一个set集合中 smove set2 set1 bbb 将set2中的bbb移动到set1中。

scard方法:查看集合中元素的个数。

第五种ZSet类型

Zset是在set的基础上做了一个有序的调整。

zadd方法:向有序集合中添加一个元素,如果该元素存在,就更新顺序。
小结:在重复插入的时候会根据顺序属性更新。

语法:zadd set1 1 aaa   其中的1代表序号。 就是排序的序号。aaa代表集合的值,set1代表集合的名字。

zrange 方法,查看集合中的值 zrange set1 0 -1 withscores
说明:withscores代表把序号也查询出来,不想显示序号可以不加。

zrem方法  删除集合中的元素。

redis高级命令

keys * 返回所有的name

exists 是否存在指定的name

expire 设置某个key的过期时间,使用ttl查看剩余时间

persist 取消过期时间

select选择数据库,数据库为0到15,共16个数据库,默认进入的是0个数据库。

move key [数据库下标] 转移到其他数据库中

randomkey  随机返回数据库中的一个key

rename key newkey 重命名key

dbsize 查看当前数据库中key的数量

flushdb 清空当前数据库,flushall清空所有数据库。

config get * 获取当前redis配置项。

info 获取数据库信息。

redis的五种基本数据类型的更多相关文章

  1. redis的五种常见数据类型的常用指令

      一.String字符串,key-value 应用场景:string是redis的最基本数据类型,key-value格式,一个key对应一个值的情况下 1.设置key = value:set key ...

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

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

  3. Jedis操作笔记 redis的五种存储类型

    常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个val ...

  4. 【JavaScript的五种基本数据类型及转换】

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...

  5. JavaScript 基础(一) - JavaScript的引入方式,JavaScript 变量命名规则,JS 的五种基本数据类型,ECMAScript 算数运算符,逻辑运算符

    JavaScript的引入方式 直接编写 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  6. Redis入门到高可用(四)—— Redis的五种数据结构的内部编码

    Redis的五种数据结构的内部编码

  7. javascript中五种基本数据类型

    前言: JavaScript中有五种基本数据类型(也叫做简单数据类型)分别为:undefined.null.bolean.number.string:另外还含有一种复杂的数据类型:object. 深入 ...

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

    /** * 五种基本数据类型:string, number, boolean, null, undefined */ // undefined // 声明变量foo,未声明变量bar var foo; ...

  9. Redis命令操作简介及五种value数据类型

    转自:https://blog.csdn.net/ty4315/article/details/52050721 Redis是使用键值存储数据,key必须是字符串value支持五种数据类型,最新版本又 ...

随机推荐

  1. java-访问控制修饰符

    访问权限 public    任何情况都可以访问 默认包 本包范围内可以访问到 protect       同一个包里的所有类所可以访问:所有子类(子类可以不和父类在同一个包)都可以访问 privat ...

  2. js获取url参数方法

    function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...

  3. python__基础 : sys模块: sys.argv与sys.path

    sys模块中的 argv 保存的是当你运行一个py文件的时候给他传递进去的参数,如: import sys a = sys.argv print(a) # 当在命令行中调用这个py文件: > p ...

  4. 编辑工具_vi

    vi/vim平时经常会用到,但是一直没有时间系统的整理下,今天看到了一篇不错的介绍文章.引用下,就当做笔记了,但是不晓得该怎么填引用路径,如有侵权请告知,补上引用路径 01. vi 简介 1.1 学习 ...

  5. 笔记-scrapy-辅助功能

    笔记-scrapy-辅助功能 1.      scrapy爬虫管理 爬虫主体写完了,要部署运行,还有一些工程性问题: 限频 爬取深度限制 按条件停止,例如爬取次数,错误次数: 资源使用限制,例如内存限 ...

  6. [bzoj1999][noip2007]Core树网的核

    好久没写题解了.这题不算太水就写一下题解. 话说回来,虽然不水但是挺裸.可以说题意即一半题解了. 我猜粘了题面也没有人去看的,所以直接人话题意了. 给一棵树,点数1e6,(当年noip的n当然是只有3 ...

  7. laravel5.5门面

    Facades为应用程序的 服务容器 中可用的类提供了一个 静态接口 . 最直观的好处 就是需记住必须手动注入或配置的长长的类名.因此有人也理解Facades就是一个"快捷别名" ...

  8. 三层还是DDD,ORM还是Ado.Net,何去何从?

    我本想把这个问题放到博问去,前几次有去博问问过之类的问题,无奈大神们可能都不屑回答别人的低级问题.所以放到随笔里,一方面把自己对ORM.架构的一些看法写下来抛砖引玉,另一方面最主要的是想寻求大神们指指 ...

  9. 每天一个Linux命令(10):mv命令

    mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中.source表示源文件或目录,target表示目标文件或目录.如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆 ...

  10. JMeter获取复杂的JSON串中的参数的值

    大家好,这篇博文中主要是介绍怎么用JMeter的BeanShell去获取复杂的JSON串中的某个参数的值,这将 便于我们用JMeter做出更完美的自动化测试: 首先有这样一个json串: { &quo ...