Redis五种常用数据类型
string
- 字符串常用操作 - 1.存入字符串键值对 - SET key value - 2.批量存储字符串键值对 - MSET key value [key value ...] - 3.获取一个字符串键值 - GET key - 4.批量获取字符串键值 - MGET key [key ...] - 5.删除一个键 - DEL key [key ...] - 6.设置一个键的过期时间(秒) - EXPIRE key seconds 
- 原子加减 - 1.将key中存储的数字值加一 - INCR key - 2.将key中存储的数字值减一 - DECR key - 3.将key所存储的值加上increment - INCRBY key increment - 4.将key所存储的值减去decrement - DECRBY key decrement 
- 单值缓存 - SET key value - GET key 
- 对象缓存 - 1.SET user:1 value(json格式数据) - 2.MSET user:1:name test user:1:balance 10086 - MGET user:1:name user:1:balance 
- 分布式锁 - SETNX product:10001 true //返回1代表获取锁成功 
 SETNX product:10001 true //返回0代表获取锁失败
 ....执行业务操作
 DEL product:10001 //执行完业务释放锁 SET product:10001 true ex 10 nx //防止程序意外终止导致死锁
- 计数器 - INCR article:readcount:{文章id} - GET article:readcount:{文章id} 
- Web集群session共享 - spring session + redis 实现session共享 
- 分布式系统全局序列号 - //redis批量生成序列号提升性能 
 INCRBY orderId 1000
hash
- hash常用操作 - 1.存储一个哈希表key的键值 - HSET key field value - 2.获取一个不存在的哈希表key的键值 - HSETNX key field value - 3.在一个哈希表key中存储多个键值对 - HMSET key field value [field value ...] - 4.获取哈希表key对应的field键值 - HGET key field - 5.批量获取哈希表key中多个field键值 - HMGET key field [field ...] - 6.删除哈希表key中的field键值 - HDEL key field [field ..] - 7.返回哈希表key中field数量 - HLEN key - 8.返回哈希表key中所有的键值 - HGETALL key - 9.为哈希表key中field键的值加上增量increment - HINCRBY key field increment 
- 对象缓存 (类似map) - HMSET user {userId}:name test {userId}:age 10 HMGET user 1:name 1:age
list
- list常用操作 - 1.将一个或多个值value插入到key列表的表头(最左边) - LPUSH key value [value ...] - 2.将一个或多个值value插入到key列表的表尾(最右边) - RPUSH key value [value ...] - 3.移除并返回key列表的头元素 - LPOP key - 4.移除并返回key列表尾头元素 - RPOP key - 5.返回列表key中指定区间内的元素,区间以偏移量start和stop指定 - LRANGE key start stop - 6.从key列表表头弹出一个元素,若列表中没有元素,阻塞则等待timeout秒,如果timeout=0,一直阻塞等待 - BLPOP key [key ...] timeout - 7.从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待 - BRPOP key [key ...] timeout 
set
- set 常用操作 - 1.往集合key中存入元素,元素存在则忽略,若key不存在则新建 SADD key member [member ...] - 2.从集合key中删除元素 SREM key member [member ...] - 3.获取集合key中的所有元素 SMEMBERS key - 4.获取集合key的元素个数 SCARD key - 5.判断member元素是否存在于集合key中 SISMEMBER key member - 6.从集合key中选出count个元素,元素不从key中不删除 SRANDMEMBER key [count] - 7.从集合key中选出count个元素,元素不从key中删除 SPOP key [count] 
- set运算操作 - 1.交集运算 SINTER [key ...] - 2.将交集结果存入新集合destination中 SINTERSTORE destination key [key ...] - 3.并集运算 SUNION key [key ...] - 4.将并集结果存入新集合destination中 SUNIONSTORE destination key [key ...] - 5.差集运算 SDIFF key [key ...] - 6.将差集结果存入新集合destination中 SDIFFSTORE destionation key [key ...] 
sorted Set(zSet)
  有序集合(sorted set)和集合(set)都不允许重复的成员;不同的是每个元素都会关联一个double类型的分数;redis正是通过分数来为集合中的成员进行从小到大的排序;有序集合的成员是唯一的,但分数(score)却可以重复;zSet的api与Set的api大致相同;
1.向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZADD key score1 member1 [score2 member2] 2.通过索引区间返回有序集合指定区间内的成员 ZRANGE key start stop [WITHSCORES]
3.移除有序集合中的一个或多个成员
ZREM key member [member ...]
4.通过分数返回有序集合指定区间内的成员
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
5.返回有序集合中指定成员的索引
ZRANK key member,其中member按score值递增(从⼩到⼤)
关于NOSQL的优势
非关系型数据库,数据与数据之间没有关联关系。就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题;
类型
- 键值(key-value)存储数据库
- 列存储数据库:键仍然存在,但是指向了多个列,HBase (eg:博客平台(标签和文章),日志)
- 文档型数据库 MongoDb (eg:淘宝商品的评价)
- 图形数据库 Neo4j (eg:好友列表)
 
扩展:
MongoDB是一个基于分布式文件存储的数据库。有C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案;
MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系数据库当中功能最丰富,最像关系型数据库的;
    文档(document)是MongoDB中数据的基本单元,非常类似于关系型数据库系统中的行(但是比行要复杂的多);  
    集合(collection)就是一组文档,如果说MongoDB中的文档类似于关系型数据库中的行,那么集合就如同表;
易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性;数据之间无关系,这样就非常容易扩展;也无形之间,在架构的层面上带来了可扩展的能力;
大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单;一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高;而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了;
灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式;而在关系数据库里,增删字段是一件非常麻烦的事情;如果是非常大数据量的表,增加字段简直就是一个噩梦;这点在大数据量的web2.0时代尤其明显;
Redis五种常用数据类型的更多相关文章
- redis五种基本数据类型
		1.string类:一个key对应一个value(key:value).string类是二进制安全,可以包含任何数据(例如:图片.音乐). 2.hash类:string类型field和value的映射 ... 
- redis五种数据类型的使用(zz)
		redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ... 
- redis五种数据类型的使用
		redis五种数据类型的使用 redis五种数据类型的使用 (摘自:http://tech.it168.com/a2011/0818/1234/000001234478_all.shtml ) 1.S ... 
- redis五种数据类型的使用场景
		string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ... 
- Redis五种数据类型-设置key的过期时间
		1.redis命令客户端 [root@localhost bin]# ./redis-cli 127.0.0.1:6379> #是否运行着 127.0.0.1:6379> ping PON ... 
- Redis API与常用数据类型简介
		Redis API与常用数据类型简介 一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些 ... 
- Redis(一)、Redis五种数据结构
		Redis五种数据结构如下: 对redis来说,所有的key(键)都是字符串. 1.String 字符串类型 是redis中最基本的数据类型,一个key对应一个value. String类型是二进制安 ... 
- 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; ... 
随机推荐
- 文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。
			源码 https://github.com/naturefwvue/nf-vue3-ant 特点 只需要更改meta,既可以切换表单 可以统一修改样式,统一升级,以最小的代价,应对UI的升级.切换,应 ... 
- Java Web学习(一)Web基础
			文章更新时间:2020/07/24 一.基本概念 web资源 Internet上供外界访问的Web资源分为两种: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. 动态w ... 
- [阅读笔记]Attention Is All You Need - Transformer结构
			Transformer 本文介绍了Transformer结构, 是一种encoder-decoder, 用来处理序列问题, 常用在NLP相关问题中. 与传统的专门处理序列问题的encoder-deco ... 
- Python-列表推导式、生成器、字典推导式
			列表推导式 [] + for + if 算子.循环.条件, 对相同的数据进行处理, 算子也可以是函数 number = [i for i in range(1, 101) if i % 2 == 0] ... 
- Leetcode-数组&链表
			常见双指针技巧用法,只总结思路,具体边界判定想不清楚的时候稍微画个图就行了 1. 快慢指针判断链表是否含有环.环入口(快慢指针再次相遇即有环:再从头节点和快慢指针的相遇位置同速度向后,相遇点即为环入口 ... 
- STM32的CCM RAM
			STM32F407ZGT6的Flash大小为1MB,SRAM大小为(128KB+64KB). 这里SRAM之所以分开表示是因为在芯片内部前面的128KB和后面的64KB地址不是连续的,后面的64KB在 ... 
- 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作
			专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ... 
- MySQL数据库入侵及防御方法
			来自:http://blog.51cto.com/simeon/1981572 作者介绍 陈小兵,高级工程师,具有丰富的信息系统项目经验及18年以上网络安全经验,现主要从事网络安全及数据库技术研究工作 ... 
- 通用redis
			import lombok.extern.slf4j.Slf4j;import org.apache.poi.ss.formula.functions.T;import org.rcisoft.cor ... 
- 小程序将base64的多张图片,传到tp5后台
			zhu要是前端传过来的数据是base64的数据库存储不了base64的数据,因存储量太过于大,因此后台要将base64的数据转换成,34124323534.jpg等格式的,数据库才可将其存储 源码暂时 ... 
