一、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的几种常见方式,文中给出了详细的示例代码供大家参考学习 ...
随机推荐
- python中的with
看例 """ 需求:不用数据库连接池,实现数据库链接操作 """ class SQLHelper(object): def open(sel ...
- C#,SOAP1.1与1.2的发布与禁用(SOAP 1.2 in .NET Framework 2.0)
来源:https://www.codeproject.com/Articles/11878/SOAP-in-NET-Framework SOAP 1.2 in .NET Framework 2.0 ...
- 异步FIFO格雷码与空满
在传递读写时钟域的指针使用格雷码来传递,如何把二进制转换为格雷码,格雷码是如何判断读空写满呢? 二进制码转换成二进制格雷码,其法则是保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高 ...
- Java中的yield关键字的简单讲解
Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程. yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会.因此,使用yie ...
- C# 获取物理网卡Mac地址
// <summary> /// 获取网卡物理地址 /// </summary> /// <returns></returns> public stat ...
- ioncube 加密软件 linux 使用方法
https://www.ioncube.com/sa_encoder.php?page=pricing 购买成功后 解压文件包 装了一个linux 版的加密软件 目录:/webdata/soft/io ...
- 开发组件:Supervisor
Supervisor安装与配置(Linux/Unix进程管理工具) https://blog.csdn.net/xyang81/article/details/51555473 https://www ...
- [Python] 拉格朗日插值
#-*— coding:utf-8 -*- #Program 0.3 Lagrange Interpolation import matplotlib.pyplot as plt import num ...
- 详解Tomcat配置及使用
2018年06月27日 23:42:34 尘埃丶落定 阅读数:2351 版权声明:本文为博主原创文章,转载请附上作者与出处. https://blog.csdn.net/longyin0528/ ...
- Linux查看进程,端口,访问url
# 查看进程# ps -ef|grep python# 终止进程# kill -9 id # 端口 netstat -ntl # 显示正在监听的tcp端口,以端口号显示 netstat -apn|gr ...