一、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的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
随机推荐
- 异步FIFO空满设计延迟问题
由于设计的时候读写指针用了至少两级寄存器同步,同步会消耗至少两个时钟周期,势必会使得判断空或满有所延迟,这会不会导致设计出错呢? 异步FIFO通过比较读写指针进行满空判断,但是读写指针属于不同的时钟域 ...
- 用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境
作为主流开发语言, 用python 开发的程序越来越多. 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始. 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试 ...
- css transition transform animation例子讲解
1.transition属性: transition属性是一个速记属性有四个属性:transition-property , transition-duration, transition-timin ...
- 小峰servlet/jsp(5)jsp自定义标签
一.自定义标签helloworld: 二.自定义有属性的标签: HelloWorldTag.java:继承TagSupport: package com.java1234.tag; import ja ...
- jenkins的war包下载地址
https://jenkins.io/doc/book/installing/
- 2018-2019 20165226 Exp6 信息搜集与漏洞扫描
2018-2019 20165226 Exp6 信息搜集与漏洞扫描 目录 一.实验内容说明及基础问题回答 二.实验过程 Task1 各种搜索技巧的应用 检测特定类型的文件 搜索网址目录结构 trace ...
- 部署DNS从服务器
修改主服务器中区域信息文件: # vi /etc/named.rfc1912.zones 检查配置文件是否有错误 # named-checkconf 重启named服务程序,让配置文件生效 #syst ...
- 阿里云上部署tomcat启动后,通过http不能访问
原因是因为阿里为了安全设置了安全组策略,必须我们授权的端口,其他计算机才能通过http访问 设置流程: 点击安全组 再点击:配置规则 然后点击:添加安全组规则 开始配置:划红线的必写,授权对象:0.0 ...
- 理解 tornado.gen
转自:http://blog.xiaogaozi.org/2012/09/21/understanding-tornado-dot-gen/ 理解 tornado.gen SEP 21ST, 2012 ...
- Java与C++语法的区别
1. 注释可以在Java程序中起到文档标记的作用 类文档标记: 1)@version 2)@author 3)@param 4)@return 5)@exception 2. Java的字符占两个字节 ...