Redis介绍:
C语言开发、单线程操作、高性能、键值对、可持久化的数据库。
Redis采用redisObject结构来统一五种数据类型,redisObject是五种类型的父类,可以在函数间传递时隐藏具体的类型信息。这样所有的数据类型就都可以以相同的形式在函数间传递而不用使用特定的类型结构。同时,为了识别不同的数据类型,redisObjec中定义了type和encoding字段对不同的数据类型加以区别。
持久化文件:dump.rdb
Redis持久化机制:
1:RDB:默认方式,不需要配置。间隔一段时间,检测key发生变化,然后持久化数据,对服务器性能影响小,推荐使用
save 900 1 -- 900秒后,如果有1个命令操作,就持久化
save 300 10 -- 300秒后,如果有10个命令操作,就持久化
save 10 1000 -- 10秒后,如果有1000个命令操作,就持久化
2:AOF:每一次命令操作后,持久化数据

数据类型:

String类型:
value可以是String类型,也可以是数字类型;String类型在redis内部存储默认就是一个字符串,当遇到incr、decr等操作就会转换成数值型进行计算,此时redisObject的encoding值为int。
操作:
存储:set key value
获取:get key
删除:del key
获取字符串长度
往字符串append内容
设置和获取字符串的某一段内容
设置及获取字符串的某一位(bit)
批量设置一系列字符串的内容

Hash类型:
Hash是最接近关系型数据库结构的数据类型,可以将数据库中的一条记录或一个对象转换为hashmap存放在redis中
Hash是一个string类型的field、value的映射表。适合存储对象。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。Hash结构还可以使你像在数据库中Update一个属性一样只修改某一项属性值。
操作:
存储:hset key field1 value
获取:hget key field
获取所有fied和value: hgetall key
删除:hdel key field

List类型:
列表,数据结构是双向链表,可以存储列表结构的数据,List另一个应用就是消息队列。Redis还提供了操作Lists中某一段的api,你可以直接查询,删除Lists中某一段的元素。
操作:
存储:
lpush key value -- 将元素加入列表左侧
rpush key value -- 将元素加入列表右侧
获取:
lrange key start end -- 范围获取(案例:获取全部 lrange mylist 0 -1)
lpop key -- 从列表左侧获取一个元素并删除
rpop key -- 从列表右侧获取一个元素并删除

set类型:
集合,和List的区别是Set元素无序且不可重复;可以获取集合间交际、并集、差集、补集等操作
Set是Hash Table,相同的对象内容只能在Set中存在一次,后面在添加的对象内容会覆盖已经存在Set中的对象内容
比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis还为集合提供了求交集、并集、差集等操作,可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。

Zset类型:
有序集合,在set的基础上增加一个顺序属性,比如一个存储全班同学成绩的Sorted Sets,其集合value可以是同学的学号,而score就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序。
场景:排行榜、处理过期项目:如果有新数据添加时,我们把它加到有序集合中,用时间做排序。开一个服务定时查询,取前十项,时间过期就删除数据。

操作:
存储:zadd key score value -- score:分数,按分数排序
获取:zrange key start end -- zrange mysortset 0 -1 withscores 获取集合,并带排序
删除:zrem key value

Redis笔记1-Redis介绍及数据类型使用场景的更多相关文章

  1. (一)Redis笔记——简介 、key 、数据类型

    1.  Redis是什么.特点.优势 Redis是一个开源的使用C语言编写.开源.支持网络.可基于内存亦可持久化的日志型.高性能的Key-Value数据库,并提供多种语言的API. 它通常被称为数据结 ...

  2. redis相关笔记(三.redis设计与实现(笔记))

    redis笔记一 redis笔记二 redis笔记三 1.数据结构 1.1.简单动态字符串: 其属性有int len:长度,int free:空闲长度,char[] bur:字符数组(内容) 获取字符 ...

  3. Redis学习笔记1-Redis的介绍和认识

    说明:文章内容来自百度百科和redis官方对redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API ...

  4. Redis简单介绍与数据类型

    介绍 分布式缓存 NoSql:解决高并发.高可用.高可扩展,大数据存储等一系列问题而产生的数据库解决方案. Redis:键值(Key-Value)存储数据库 Redis是使用c语言开发的一个高性能键值 ...

  5. Redis学习笔记(1) Redis介绍及基础

    1. Redis的特性 (1) 存储结构 Redis(Remote Dictionary Server,远程字典服务器)是以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.Redis支 ...

  6. Redis笔记(二):Redis数据类型

    Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...

  7. 「Redis 笔记」数据类型

    REmote DIctionary Server(Redis),一个 key-value 存储系统. 数据类型 Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表) ...

  8. Redis 笔记 01:入门篇

    Redis 笔记 01:入门篇 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...

  9. Redis-cluster集群【第一篇】:redis安装及redis数据类型

    Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...

随机推荐

  1. Qt+FFmpeg 简单实现视频播放

    这里使用 Qt + FFmpeg 实现了一个简单播放视频的例子.先看下按下按钮播放视频时的效果图: 完整工程下载链接:Github-FFmpeg_demo 注意:一定要将 bin 目录下的 dll 文 ...

  2. Windows重要的win键

    win+↓ 当前窗口操作,多按几下就缩没了(同理,其他箭头也一样) win+e 打开此电脑 win+v 展开剪切板 win+k 访问蓝牙 win+a win10的通知 win+d (切到桌面,再用能切 ...

  3. Vue.js 源码分析(三) 基础篇 模板渲染 el、emplate、render属性详解

    Vue有三个属性和模板有关,官网上是这样解释的: el ;提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标 template ;一个字符串模板作为 Vue 实例的标识使用.模板将会 ...

  4. python yield from (二)

    #pep380 #1. RESULT = yield from EXPR可以简化成下面这样 #一些说明 """ _i:子生成器,同时也是一个迭代器 _y:子生成器生产的值 ...

  5. Prometheus 监控K8S集群资源监控

    Prometheus 监控K8S集群中Pod 目前cAdvisor集成到了kubelet组件内,可以在kubernetes集群中每个启动了kubelet的节点使用cAdvisor提供的metrics接 ...

  6. Beats Elastic中的Auditbeat使用介绍

    Auditbeat使用介绍 Auditbeat是一种轻量级的数据收集器,您可以将其安装在服务器上,以审核系统上用户和进程的活动. 例如,您可以使用Auditbeat从Linux Audit Frame ...

  7. centos 8 重启网络 systemctl restart network 失效的解决办法

    参考: https://www.tecmint.com/set-static-ip-address-in-rhel-8/ https://www.tecmint.com/configure-netwo ...

  8. 关于 L3 缓存行 cacheLIne 的研究!还是对程序有举足轻重的作用!

    https://www.cnblogs.com/PurpleTide/archive/2010/11/25/1887506.html CLR via C# 读书笔记 2-3 Cache Lines a ...

  9. Java编程基础——常量变量和数据类型

    Java编程基础——常量变量和数据类型 摘要:本文介绍了Java编程语言的常量变量和数据类型. 常量变量 常量的定义 一块内存中的数据存储空间,里面的数据不可以更改. 变量的定义 一块内存中的数据存储 ...

  10. Java之路---Day16(泛型)

    2019-11-02-23:25:26 目录 1.泛型的概念: 2.泛型的定义和使用: 2.1定义和使用含有泛型的类: 2.2定义和使用含有泛型的方法: 2.3定义和使用含有泛型的接口: 泛型的概念: ...