一、String字符串,key-value
应用场景:string是redis的最基本数据类型,key-value格式,一个key对应一个值的情况下
1、设置key = value:set key value
2、追加一个值到key:append key value
append baidu .com
3、取值:get key
get baidu
4、增加键的整数值一次:incr key
set count 0
incr count 【count会变成1】
5、由给定的数量递增键的整数值: incrby key increment
incrby count 100 【count会变成101】
6、返回存储在键的数据类型的值: type key
type baidu 【string】
type count【string】
7、删除健值:del key
del count
8、key值是否存在:exists key
exists baiduzhiding
9、指定key的过期时间,秒:expire key seconds
expire baidu 100 【没有设置默认长期有效】
二、List列表
应用场景:高并发的常用 比如抢购 要限制成功的前几个人数。比如twitter的关注列表、粉丝列表等都可以用Redis的list结构来实现,再比如有的应用使用Redis的list类型实现一个简单的轻量级消息队列,生产者push,消费者pop/bpop。
1、设置key:LSET key index value
必须对已经存在的list设置,空list会报错
LSET list 0 item 【list不存在】 ---> (error) ERR no such key
LSET job 0 "play game" ---> OK
2、将一个或多个值插入到列表左边:LPUSH KEY VALUE1.. VALUEN
如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。
lpush list1 redis
lpush list1 hello
3、将一个或多个值插入到列表右边:RPUSH key value1 [value2]
rpush list1 world
4、获取列表的长度:LLEN key
llen list1
---> 3
5、从一个列表获取元素:LRANGE key start stop
lrange list1 0 3
---> 1) "hello"
---> 2) "redis"
---> 3) "world"
6、移除并返回列表中的第一个元素,左边:LPOP key
lpop list1
---> "hello"
7、移除并返回列表中的最后一个元素,右边:RPOP key
rpop list1
---> "world"
lrange list1 0 3
---> 1) "redis"
三、Hash(字典,哈希表)
应用场景:假设有多个用户及对应的用户信息,可以用来存储以用户ID为key,将用户信息序列化为比如json格式做为value进行保存比如有分类 要把鸡蛋放到一个篮子里 鸭蛋放一个篮子,那这个篮子的话就是一个hash表名,里面的鸡蛋 和鸡蛋位置就是value 和key
1、设置对象指定字段的值:HSET key field value
hset person name jack
hset person age 20
hset person sex famale
2、获取对象的所有属性域和值:HGETALL key
hgetall person
---> 1) "name"
---> 2) "jack"
---> 3) "age"
---> 4) "20"
---> 5) "sex"
---> 6) "famale"
3、获取对象中该field属性域的值:HGET key field
hget person name
---> jack
4、获取对象的所有属性字段:HKEYS key
hkeys person
---> 1) "name"
---> 2) "age"
---> 3) "sex"
5、获取对象的所有属性值:HVALS key
hvals person
---> 1) "jack"
---> 2) "20"
---> 3) "famale"
6、删除对象的一个或几个属性域,不存在的属性将被忽略:HDEL key field[field...]
7、查看对象是否存在该属性域:HEXISTS key field
8、获取对象的所有属性字段的总数:HLEN key
四、Set集合
应用场景:set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的
1、添加一个或者多个元素到集合(set)里:SADD key member [member ...
SADD myset "Hello"
SADD myset "World"
2、获取集合里面的所有key:SMEMBERS key
SMEMBERS myset
---> 1) "World"
---> 2) "Hello"
3、确定一个给定的值是一个集合的成员:SISMEMBER key member
SISMEMBER myset "one"
---> 0
4、获得两个集合的交集:SINTER key [key ...]
5、获取并删除一个集合里面的元素:SPOP key [count](不加下标就随机返回)
6、从集合里删除一个或多个元素,不存在的元素会被忽略:SREM key member [member ...]
五、Sorted Set(有序集合)
应用场景:set不是自动有序的,而sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。当你需要一个有序的并且不重复的集合列表,那么可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。
1、添加一个或多个成员到有序集合,或者如果它已经存在更新其分数:ZADD key score1 member1 [score2 member2]
zadd dbs 100 redis
zadd dbs 98 memcached
zadd dbs 99 mongodb
zadd dbs 99 leveldb
2、得到的有序集合成员的数量:ZCARD key
zcard dbs
----> (integer) 4
3、计算一个有序集合成员与给定值范围内的分数:ZCOUNT key min max
zcount dbs 10 99
----> (integer) 3
4、确定成员的索引中有序集合:ZRANK key member
zrank dbs leveldb
----> (integer) 1
zrank dbs other
----> (nil)
5、在给定的分数之内删除所有成员的有序集合:ZREMRANGEBYSCORE key min max
zrangebyscore dbs 98 100
----> 1) "memcached"
----> 2) "leveldb"
----> 3) "mongodb"
----> 4) "redis"
- redis的五种基本数据类型
redis基本数据类型 redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet 第一种String String类型是包含很多种类型的特殊类型,并且是二进制安全的.比如 ...
- Redis: Redis支持五种数据类型
ylbtech-Redis: Redis支持五种数据类型 Redis支持五种数据类型:string(字符串) ,hash(哈希),list(列表),set(集合)及zset(sorted set:有序 ...
- 五种常见的ASP.NET安全缺陷
保证应用程序的安全应当从编写第一行代码的时候开始做起,原因很简单,随着应用规模的发展,修补安全漏洞所需的代价也随之快速增长.根据IBM的系统科学协会(SystemsSciencesInstitute) ...
- [转载 ]五种常见的 PHP 设计模式
五种常见的 PHP 设计模式 策略模式 策略模式是对象的行为模式,用意是对一组算法的封装.动态的选择需要的算法并使用. 策略模式指的是程序中涉及决策控制的一种模式.策略模式功能非常强大,因为这个设计模 ...
- JavaScript 基础(一) - JavaScript的引入方式,JavaScript 变量命名规则,JS 的五种基本数据类型,ECMAScript 算数运算符,逻辑运算符
JavaScript的引入方式 直接编写 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- js五种基本数据类型:string, number, boolean, null, undefined
/** * 五种基本数据类型:string, number, boolean, null, undefined */ // undefined // 声明变量foo,未声明变量bar var foo; ...
- 【JavaScript的五种基本数据类型及转换】
js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...
- Redis入门到高可用(四)—— Redis的五种数据结构的内部编码
Redis的五种数据结构的内部编码
- jedis操作redis的几种常见方式总结
Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
随机推荐
- ExtJS中,将Grid表头中的全选复选框取消复选
今天发现公司产品用的EXTJS中使用Grid时,Grid表头中的全选复选框的选中状态不是很准确,就写了这个小扩展 在js中加入下面方法,在需要取消全选的地方调用即可,例:Ext.getCmp('gri ...
- 关于有时候导入maven项目时候报错(有红色叹号,类中导入的包提示"the import java.util cannot be resolve,")
------解决方案--------------------解决方案:右键项目-------buildpath--------最下面那个configura...的选择libraries找到JRE(这个 ...
- 关于office2016桌面新建不显示execl问题
在百度,google找了很多方法都没有文档可以解决此问题,office2016安装完在新建是由ececl的,应该是我用了清理注册表工具,对execl项进行清理,造成没有execl,所以贴出原版xls, ...
- php array_flip() 删除数组重复元素——大彻大悟
1. php array_flip() 删除数组重复元素,如果用于一维索引数组,好理解. [root@BG-DB:~]$more arr.php <?php $arr = ar ...
- PostgreSQL下安装pg_stat_statements
一.安装过程如下:进入postgreSQL安装包的contrib/pg_stat_statements目录,执行编译和安装动作:用root用户 make && make install ...
- API网关Kong系列(三)添加服务
进入之前部署好的kong-ui,默认第一次登陆需要配置kong服务的地址 进入API菜单,点击+号 按照要求填入相关信息 至此完成,可以使用诸如 https://your.domain.com:208 ...
- 洛谷:P1087 FBI树 P1030 求先序排列 P1305 新二叉树
至于为啥把这三个题放到一起,大概是因为洛谷的试炼场吧,三道树的水题,首先要理解 先序中序后序遍历方法. fbi树由于数量小,在递归每个区间时,暴力跑一遍区间里的数,看看是否有0和1.至于递归的方法,二 ...
- 编写函数digit(num, k),函数功能是:求整数num从右边开始的第k位数字的值,如果num位数不足k位则返回0。
function digit(num,k){ var knum = 0; for(var i=1; i<=k; i++){ knu ...
- 【C语言】09条件编译
条件编译的概念;通常我们希望程序的其中一部分代码只有在满足一定的情况下才进行编译,否则不参与编译,(只有参与编译的代码最终才能被执行) 这就是条件编译; 基本用法; #if condication01 ...
- 《GPU高性能编程CUDA实战》附录三 关于book.h
▶ 本书中用到的公用函数放到了头文件book.h中 #ifndef __BOOK_H__ #define __BOOK_H__ #include <stdio.h> #include &l ...