redis 类型、方法
之前使用redis,现在对所有redis方法做一个总结;
string类型
形式:key=>value;
说明:最简单的类型;一个key对应一个value,value保存的类型是二进制安全的,string可以包含任何数据,比如图片或者序列换的对象
方法:
set:设置key对应的值为string类型的value;如果存在则修改,否则添加;返回ok
set name aaa
setnx:设置key对应的值为string类型的value;如果存在,失败返回0,不存在则添加,成功返回value;nx为not exists 的意思
setnx name aaa
setex:设置key对应的值为string类型的value;并指定此建对应的有效期;成功返回ok;
setex name aaa //设置名字为aaa并且有效期有10秒
setrange:设置指定key的value值的子字符串;替换
setrange name aaa //设置name从第二个下标开始替换后面的三个子字符串为aaa;返回修改后的字符串长度
mset:一次性设置多个key的值,成功返回ok表示所有值都设置了,失败返回0表示没有任何值被设置;
mset name1 aaa1 name2 aaa2 //设置name1为aaa1,name2为aaa2
msetnx:一次性设置多个key的值,成功返回OK表示所有值被设置了,失败返回0表示没有值被设置了;不会覆盖已经存在的key
msetnx name4 aaa4 name5 aaa5 //设置name4为aaa4,name5为aaa5 如果其中一个存在则返回0,不改变任何;成功返回1
getset:设置key的值,并且返回一个key的旧值,旧值不存在则返回空,新增一个新值;
getset name5 aaa5 //设置name5的值为aaa5 并返回name5的旧值,不存在则返回nil
getrange:获取key对应的string的子字符串;有则返回子字符串,没有则返回空字符串
getrange name5 //返回key为name5的字符串中下表0到2的子字符串
get:获取key对应的value值
get name5
mget:批量获取值
mget name1 name2 name3 name4 //返回name1,name2,name3,name4的值,不存在则返回nil
incr:对key的值进行递增操作,返回新的值
incr name6 //对name6的值进行递增,如果值为字符串则会报错,成功返回自增后的值
incrby:对key的值增加或减少指定值的操作
incrby name6 //对name6的值加12返回新值
incrby name6 - //对name6的值减12 返回新值
decr\decrby同上
append:给指定key的值追加value;返回新的字符串长度
append name5 bbb //给key为name5的值追加bbb
strlen:返回指定key的value长度
strlen name5 //返回name5的value长度
hashes类型
形式:key:field value field value
说明:string类型field和value的映射表,适合于存储对象,类似与表,ID可以连接在key后面;
方法:
hset:设置hash field为指定值,如果key不存在则创建,成功返回1,失败返回0
hset myhash field1 value1 field2 value2 //创建一个key为myhash的fied1为value1 field2为value2的hash类型数据
hget:获得指定key中指定属性的值
hget myhash field1 //获取myhash中属性field1的值
hsetnx:设置hash field为指定值,如果key不存在,则先创建,如果存在返回失败0
hsetnx myhash title aaa //添加myhash中title的值为aaa
hmset:批量设置hash中的过个field
hmset myhash field1 value1 field2 value2 field3 value3
hincrby:指定hash field 加上指定值
hincrby myhash field value
hexists:判断指定hash中字段是否存在
hexists myhash field
hlen:指定hash中field的数量
hlen myhash
hdel:删除指定hash中的field
hdel myhash field
hkeys:获取指定hash中所有的field
hkeys myhash
hvals:获取指定hash中所有的value
hvals myhash
hgetall:获取指定hash中所有的field 和 value
hgetall myhash
list类型
格式:mylist:key1=>value1 key2=>value2
说明:list是一个链表结构,主要功能是push、pop、获取一段范围内的所有值等等;操作中key理解为链表的名字;,链表既可以做栈也可以做队列
方法:
lpush:向头部添加元素;成功返回添加后的数量;可以同事添加多个元素
lpush mylist value //向mylist头部添加 value
lpop:从头部弹出一个元素;成功返回第一个元素;失败返回nil
lpop mylist //从mylist头部弹出第一个元素,并删除
lrange:获取list中两个下表中的所有值;
lrange mylist - //返回mylist中所有的值
rpush:从尾部添加一个元素;可同时添加多个;返回添加后的长度
rpush mylist aaa bbb //向mylist尾部最加两个元素
rpop:从尾部弹出一个元素;
rpop mylist //从mylist尾部弹出一个值,并删除最后一个
linsert:向列表中间插入一个;返回添加后的长度
linsert mylist before "aaa" "bbb" //在mylist中向aaa前面插入bbb
lset:修改指定list指定下标的元素值;成功返回OK;
lset mylist index value //将mylist中下标为index的值替换为value
lrem:从指定list中删除和指定值相同的值;返回影响的行数
lrem mylist count value //从mylist中删除count个和value中相同的值;返回影响的行数;
ltrim:在指定list中保留指定下标内的元素;成功返回ok
ltrim mylist start end //保留mylist中从start到end下标的元素
rpoplpush:从第一个list尾部弹出一个元素添加到第二个元素头部
rpoplpush mylist1 mylist2 从第一个list尾部弹出一个添加到mylist2头部
lindex:返回指定list中指定下标的值;
lindex mylist index //返回mylist中下标index的值
llen:返回list的长度
llen mylist //获取mylist中元素的长度
set集合
格式:myset:value1 value2 value2
说明:set是string类型的无序集合,set是通过hash table实现的,对于集合可以去并集、交集、差集,可以实现类似好友推荐的功能;
方法:
sadd:向指定集合中添加元素;集合中不允许有重复的值
sadd myset value //向myset集合中添加value元素
smembers:查看指定集合中的元素
smembers myset //查看myset中的元素
srem:删除集合中的成员
srem myset value //删除集合中value成员
spop:从集合中随机弹出删除指定个数的元素,默认为1;返回被删除的元素
spop myset1 //随机弹出并删除两个元素
sdiff:返回两个集合的差集,以第一为主,就是第一个集合中有第二个集合中没有的返回,第一个集合没有第二个集合有则不返回
sdiff myset1 myset2 // 返回myset1和myset2中的差集;以myset1为主
sdiffstore:以第二个为主,与后面的集合比较取差集,存入第一个集合中,如果第一个中本来就有值,则先清空在插入
sdiffstore myset1 myset2 myset3 //以myset2为主将myset2和myset3的差集存入myset1中
sinter:返回n个集合的交集
sinter myset1 myset2 //返回myset1和myset2的交集
sinterstore:将第二个和后面的取交接,存入第一个结合中
sinterstore myset1 myset2 myset3 //将myset2 myset3的交集存入myset1中
unision:取n个集合的交集
unsion myset1 myset2 //取myset1和myset2的交集
unisionstore:将第二个和后面的集合取交集,存入第一个集合中
unisonstore myset1 myset2 myset3 //将myset2 myset3取交集存入myset1中
smove:将第一个集合中的元素移到第二个集合中,只可以移动一个s
smove myset1 myset2 value //将myset1中的value移到myset2中
scard:返回集合中元素的个数
scard myset1 //获取myset1中的元素的个数
sismember:判断集合中是否存在该元素;存在返回true,不存在返回false;
sismember myset1 value //判断myset1中是否存在value
srandmember:随机返回指定个数的元素;但不删除;
srandmember myset1 count //随机返回myset中count个元素,但不删除
sorted set 有序集合
格式:storeset:value store
说明:stored set是有序集合,无需集合的升级版;在set基础上添加了一个数序属性,该属性在添加的时候可以指定;每次在zset集合添加设置后,集合会自动按照书序排序
方法:
zadd:向有序结合中添加元素和顺序,当添加同样顺序的不同值时,相同顺序不同值会按照插入顺序排序,最先插入的在上面,当插入的元素已经存在则失败;就是排序不唯一,值已定唯一;
zadd myzset order value //向myzset中添加value元素 排序是order
zrange:查看有序列表中的元素;可指定加上顺序;withsorces
orange myzset - withscores //返回myzset集合中所有排序和元素,按照排序返回
zrem:删除有序集合中的指定值
zrem myzset value //删除myzset中值为value的元素
zincrby:给制定有序集合中指定值的顺序加或减
zincrby myzset count value //给myzset有虚表中值为value的顺序加count
zrank:返回指定有序集合中指定的值在排序中从小到大的位置,及下标;不是顺序 没有则返回nil
zrank myzset value //返回myzset中value的下标
zrevrank:返回指定有序集合中指定的值在排序中从大到小排序的位置,及下标;
zrevarank myzset value //返回myzset 从大到小排序中value的下标
zrevrange:返回从大到小,与zrange顺序相反
zrevrange myzset1 - withscroes //返回myzset中所有元素,从大到小
zrangebyscores:按照排序返回指定顺序内的值
zrangebyscores myzset withscores //返回排序值在1到10包括1、10中的元素
zcount:返回给定排序值中的元素个数
zcount myzset //返回myzset中排序在1到10 包括1、10 的元素的个数
zcard:返回给定有序集合中所有元素个数
card myzset //返回myzset 中所有元素个个数
zremrangebyrank:删除指定有序集合中指定索引区间中的元素;索引区间不是排序
zremrangebyrank myzset //删除myzset中索引在1到4的元素
zremrangebyscore:删除指定有序集合中指定排序区间中的元素;
zremrangebyscore myzset //删除myzset中排序在1到10的元素
redis 类型、方法的更多相关文章
- Yii2 redis 使用方法
/** * 基于 yii2.0 redis使用方法 *///项目根目录命令行执行 composer require --prefer-dist yiisoft/yii2-redis; //在配置文件中 ...
- Swift语言之类型方法
Swift语言有很多特性,其中之一就是类型方法,相对于其他比较流行的编程语言(C#.Java),在Swift中类型方法最大的特征在于它的可继承性,我们举个例子说明: 俗话说,龙生龙凤生凤老鼠生儿会打洞 ...
- 深入学习golang(3)—类型方法
类型方法 1. 给类型定义方法 在Go语言中,我们可以给任何类型(包括内置类型,但不包括指针和接口)定义方法.例如,在实际编程中,我们经常使用[ ]byte的切片,我们可以定义一个新的类型: type ...
- redis安装方法
redis安装方法1.通过lnmp一键安装包,然后执行./addons.sh install redis2.yum -y install redis3.wget http://redis.google ...
- Swift编程语言学习12 ——实例方法(Instance Methods)和类型方法(Type Methods)
方法是与某些特定类型相关联的函数.类.结构体.枚举都能够定义实例方法:实例方法为给定类型的实例封装了详细的任务与功能.类.结构体.枚举也能够定义类型方法:类型方法与类型本身相关联.类型方法与 Obje ...
- 让php Session 存入 redis 配置方法
首先要做的就是安装redis 安装方法:http://redis.io/download Installation Download, extract and compile Redis with: ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- 线程系列07,使用lock语句块或Interlocked类型方法保证自增变量的数据同步
假设多个线程共享一个静态变量,如果让每个线程都执行相同的方法每次让静态变量自增1,这样的做法线程安全吗?能保证自增变量数据同步吗?本篇体验使用lock语句块和Interlocked类型方法保证自增变量 ...
- 如何使用phpredis连接Redis的方法
本文跟大家介绍使用同一VPC内弹性云服务器ECS上的phpredis连接Redis的方法. 更多的客户端的使用方法,请参考https://redis.io/clients 前提条件 已成功申请Redi ...
- java中Object转换成int或String类型方法
转载: http://www.cnblogs.com/1020182600HENG/p/6137206.html Object obj = getObject(); if(obj instanceof ...
随机推荐
- viewsate用法
ViewState["名称"]="ssss";直接赋值取值只能在同一个页面使用, 离开页面就会失效
- 下载安装Redis+使用
Window 下安装 第一步:安装 下载地址:https://github.com/MSOpenTech/redis/releases 第二步:解压(盘符) 第三步:打开一个 cmd 窗口 使用 cd ...
- 【题解】洛谷P3953 [NOIP2017TG] 逛公园(记忆化搜索+SPFA)
题目来源:洛谷P3953 思路 先用SPFA求一遍最短路 在求最短路的同时可以把所有点到终点的最短路求出来 dis数组 注意要反向SPFA 因为从起点开始可能会走到一些奇怪的路上导致时间负责度增加 ...
- 淘宝前端框架kissyui
http://docs.kissyui.com/1.4/docs/html/guideline/why-kissy.html
- ARM Cortex-A53 Cache与内存的映射关系以及Cache的一致性分析
ARM Cortex-A53 Cache与内存的映射关系以及Cache的一致性分析 题记:如果文章有理解不对的地方,欢迎大家批评指正,谢谢大家. 摘要:本文以Cortex-A53为例,首先分析Cach ...
- 小程序内嵌H5——判断小程序环境的坑
现在各种小程序风靡,这边H5的需求还没有搞定,产品又要求做小程序版本,做可以,关键是618前上线,我-- whatever,618要做推广,日期订了,剩下的就只能是排期,定方案,尽可能完成. 最后和产 ...
- Knowledge Point 20180303 我们为什么要配置环境变量
1.1为什么要配置环境变量 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问 ...
- 一站式学习Redis 从入门到高可用分布式实践
1:redis 是用c语言来实现的,速度快 持久化 单线程 复杂的数据类型有bitmap和hyperloglog和geo地理信息2:高可用.分布式 v2.8开始支持Redis-Sentinel(哨兵) ...
- eclipse安装tomcat时只有locahost,不显示server name
Eclipseh中无法安装Tomcat,报错信息如下 Cannot create a server using the selected type 原因:以前安装的tomcat目录改变 解决方法: ...
- Zabbix——部署(DB与web分离)
前提条件: 两台centos7设备 两台设备可以相互访问 Zabbix-Servser版本为4.0 mysql版本为8.0 关闭防火墙 Zabbix部署(包含server,web,agent) rpm ...