一、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的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
随机推荐
- Django 实现CRM 问卷调查功能组件
目录结构: 母版 {% load staticfiles %} <!DOCTYPE html> <html lang="zh-CN"> <head&g ...
- 什么是JavaBean、bean? 什么是POJO、PO、DTO、VO、BO ? 什么是EJB、EntityBean?
什么是JavaBean.bean? 什么是POJO.PO.DTO.VO.BO ? 什么是EJB.EntityBean? 前言: 在Java开发中经常遇到这些概念问题,有的可能理解混淆,有的 ...
- Windows Server 2008 R2 3389端口更改
Windows Server 2008 R2 3389端口更改 2016-04-28 23:08 4734人阅读 评论(0) 收藏 举报 分类: Windows(61) 版权声明:本文为博主原创文 ...
- FPGA远程更新之限制条件
FPGA可重配置带来了很高的灵活性,所以基于FPGA的设计/产品往往也会有后期更新/升级的需求.同时,需要更新/升级的FPGA板卡由于物理条件的限制,可能无法现场升级.比如: 1.FPGA板卡部署在异 ...
- 基于jQuery的表单操作
1,文本框的聚焦和失焦 在对文本框进行操作时,通常为了提升用户体验,是用户的操作得到及时的反馈,会在文本框获得焦点时,让其颜色改变,然后在失去焦点时恢复为原来的样式,一般情况下,我们可以通过css的伪 ...
- autoit 中文API
中文API 参考地址: http://www.jb51.net/shouce/autoit/ 虫师的selelnium里面也有简单的说 环境搭建+上传弹窗的小案例
- js的数组操作相关(BigTree*)
JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...
- ZooKeeper系列(3)命令操作 (转)
原文地址:http://www.cnblogs.com/wuxl360/p/5817524.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多 ...
- mysql监控以及调优
mysql 优点: 简单易用,成本低,易扩展,复制功能领先 mysql的生命周期: Mysql服务器监听3306端口>验证访问用户>创建mysql线程>检查内存(Qcache)> ...
- 从最大似然函数 到 EM算法详解
极大似然算法 本来打算把别人讲的好的博文放在上面的,但是感觉那个适合看着玩,我看过之后感觉懂了,然后实际应用就不会了.... MLP其实就是用来求模型参数的,核心就是“模型已知,求取参数”,模型的意思 ...