Redis学习一(基础入门).
一、前言
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、key-Value 的数据库、并提供多种语言的API。
通常,Redis 将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用截图的方式,将内存中的数据不断写入磁盘;或使用类似 MySQL 的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。
解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。
二、特点
- 支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用。
- 丰富的数据类型存储:String、list、set、zset、hash。
- 支持数据的备份,即master-slave模式的数据的备份。
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s。
- 所有的操作都是基于原子性的。
三、数据对象
- String
--redis的String可以包含任何数据,比如jpg图片或者序列后的对象,一个key最大能存储512MB。
- Hash
--hash 是一个String类型的field 和 value 的映射表,hash 特别适合用于存储对象。每个hash可以存储2^32-1键值对 。
- list
--Redis 列表是简单的字符串列表,按照插入的顺序可以在列表的头部(左边)或者尾部(右边)添加元素。
- set
--Redis的Set是String类型的无序集合。集合是通过hash表实现的,所以。添加、删除、查找的复杂度都是O(1)。
- zset
--zset 和 set一样也是String的类型元素的集合,且不允许重复的队员,不同的是每个元素都会关联一个double类型的score。redis正是通过score来为集合中的成员进行从小到大的排序。分数(score)可以重复。
添加元素到集合,元素在集合中存在则对应更新相应的score。
四、安装
1、Window
--服务端
1、window下载地址:https://github.com/MicrosoftArchive/redis/releases
2、打开一个 cmd 窗口 使用cd命令切换目录 E:\redis 运行 redis-server.exe redis.windows.conf
--客户端
1、打开一个 cmd 窗口 使用cd命令切换目录 E:\redis 运行 redis-cli.exe -h 127.0.0.1 -p 6379 -a 'mypass'
2、set myKey abc / get myKey
2、Linux
--服务端
1、 wget http://download.redis.io/releases/redis-2.8.17.tar.gz
2、 tar -zxvf redis-2.8.17.tar.gz redis-2.8.17
3、 cd redis-2.8.17
4、 make
5、 cd src
6、 ./redis-server redis.conf
--客户端
1、 cd src
2、 ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
五、命令
1、String
-- set key value 保存key和value。
-- get key 根据key得到value。
2、Hash
-- hmset myhash key1 val1 key2 val2 存储hash值
-- hget myhash key1 根据hash中的某个key得到value
-- hgetall myhash 得到hash中的所有值
-- HDEL key field1 [field2] 删除一个或多个哈希字段
-- HKEYS key 获取所有哈希表中的字段
-- HLEN key 获取哈希字段数
3、List
-- lpush key val 向列表左边插入元素
-- lpop key 从列表左边移出元素
-- rpush key val 向列表右边插入元素
-- rpop key 从列表右边移出元素
-- rpushx key value 为已存在的列表添加值
-- LRANGE key start stop 获取列表指定范围内的元素
-- lindex key index 通过索引获取列表中的元素
4、Set
-- sadd key value 添加元素
-- smembers key 根据key获得集合中的所有成员
-- scard key 获取集合的成员数
-- sdiff key1 key2 返回给定所有集合的差集(key2的集合相对于key1集合的差集)
-- sunion 返回给定集合的并集
-- smove source des member 把member从source集合到des集合
-- sdiffstore des key1 key2 返回给定所有集合的差集,并存储在des中
-- srandmember key count 返回集合中一个或多个随机数
-- spop key1 移除并返回集合中的一个随机元素
-- sismember key mem 判断mem元素是否存在
5、Zset
-- zadd page 0 123
-- zadd page 1 234
-- zrangebyscore page 0 10
6、通用
-- 删除key:DEL key
-- 查看所有的key:keys *
-- 序列化给定key,并返回被返回的值:DUMP key
-- 检查给定key是否存在:EXISTS key
-- 为key设置过期时间:EXPIRE key seconds
-- 为key设置过期时间(时间戳):EXPIREAT key timestamp
-- 为key设过期时间(毫秒):PEXPIRE key milliseconds
-- 查找所有符合给定模式的key:KEYS pattern
-- 移除key的过期时间,key将持久保存:persist key
-- 以毫秒为单位返回key的剩余过期时间:PTTL key
-- 返回key所存储的值得类型:TYPE key
HyperLogLog:
-- 添加指定元素到HyperLogLog中:PFADD key element
-- 返回给定的HyperLogLog的基数估计值:PFCOUNT key
-- 将多个HyperLogLog 合并为一个HyperLogLog:PFMERGE destkey sourcekey
订阅命令:
-- 订阅一个或多个符合给定模式的频道:psubscribe pattern
-- 退订一个或多个符合给定模式的频道:punsubscribe pattern
-- 查看订阅与发布系统状态:pubsub subcommand
-- 将信息发布到指定的频道:publish channel message
-- 订阅给定的一个或多个频道的信息:subscribe channel
-- 退订给定的频道:unsubscribe channel
Redis学习一(基础入门).的更多相关文章
- 安装虚拟机以及学习Linux基础入门
安装虚拟机 参考基于VirtualBox虚拟机安装Ubuntu图文教程完成了虚拟机的安装,主要遇到了以下2个问题 在新建虚拟电脑的时候,如果类型选择了Linux,则版本就只能选择Ubuntu(32 位 ...
- VS2013中Python学习笔记[基础入门]
前言 在上一节中简单的介绍了在VS2013中如何进行开发Hello World,在VS2013中进行搭建了环境http://www.cnblogs.com/aehyok/p/3986168.html. ...
- 在学习linux基础入门时的一些问题总结(1)
本周在实验楼完成了<linux基础入门>的21个实验,虽然之前已经学习过linux的相关课程,对linux下的命令也有一些了解和实践,但完成这21个实验以及35个练习题仍然遇到了许多的问题 ...
- Redis学习笔记之入门基础知识——其他特性
1.订阅(subscribe)与发布(publish) 用户订阅某一个频道,频道发布新的信息时,会将信息告知用户 2.数据安全 1) 快照持久化(时间点转储,实质是数据副本) 操作:SAVA. ...
- Redis学习笔记之入门基础知识——五种数据类型
1) 字符串 SET设置值,GET获取值,DEL删除值 INCR key-name将键存储的值加上1 DECR key-name将键存储的值减去1 INCRBY key-name amou ...
- Redis学习笔记之入门基础知识——简介
非关系型数据库,存储的数据类型:字符串(STRING).列表(LIST).集合(SET).散列表(HASH).有序集合(ZSET) 持久化:时间点转储(point-in-time-dump)(快照). ...
- Redis学习一:Nosql入门和概述
现在Redis越来越火,为了适应技术的发展,开始学习一下Redis,在学习Redis之前先学习一下Nosql. 第一部分:入门概述 1.1 互联网时代背景下大机遇,为什么用nosql 1.1.1 单机 ...
- Redis学习---面试基础知识点总结
[学习参考] https://www.toutiao.com/i6566017785078481422/ https://www.toutiao.com/i6563232898831352323/ 0 ...
- python学习之基础入门,安装,字符串,数据转换,三元运算符
python基础 我们要开始学习新的编程语言了,加油~~ python是“世界上最好的语言”,学习它当然是认为它是最好的所以我们才学(人生苦短我学python),python运用于不同的领域,采集分析 ...
随机推荐
- Linux下Oracle表空间及用户创建
记录详细过程以备使用 Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Connected as sys@i ...
- js实用方法记录-指不定哪天就会用到的js方法
js实用方法记录-指不定哪天就会用到的js方法 常用或者不常用都有 判断是否在微信浏览器中 测试代码:isWeiXin()==false /** * 是否在微信中 */ function isWeix ...
- Java 多线程开发之 Callable 与线程池
前言 我们常见的创建线程的方式有 2 种:继承 Thread 和 实现 Runnable 接口. 其实,在 JDK 中还提供了另外 2 种 API 让开发者使用. 二.简单介绍 2.1 Callabl ...
- [Swift-2019力扣杯春季初赛]2. 校园自行车分配
在由 2D 网格表示的校园里有 n 位工人(worker)和 m 辆自行车(bike),n <= m.所有工人和自行车的位置都用网格上的 2D 坐标表示. 我们需要为每位工人分配一辆自行车.在所 ...
- Python的简单介绍
0. 前言 最近在从头梳理Python的相关知识,有助于以后更好地学习新知识.这篇博客,我简单介绍一下Python语言的有关内容. 1. Python介绍 Python的创始人为荷兰人吉多·范罗苏姆( ...
- Netty Decoder:ByteToMessageDecoder
1. ByteToMessageDecoder 这个类是解码器的基类,其中描述了解码器基本的工作方式和实现原理::还定义了一个解码的抽象方法decode,这个方法由业务实现,负责将一段字节数据解码为具 ...
- python 中numpy dot函数的使用方法
这个函数在的数字信号处理中用处还是比较广泛的,函数的具体定义如下所示: numpy.dot(a, b, out=None) 该函数的作用是获取两个元素a,b的乘积,表示的含义如下所示: dot(a, ...
- [NewLife.XCode]实体类详解
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
- How Tomcat works — 三、tomcat启动(2)
在了解了tomcat 的一些基本组件之后,学习启动过程就更容易理解了,因为启动过程就是启动各个组件. 目录 启动顺序 Bootstrap类 Catalina类 StandardServer类和Stan ...
- Oracle数据库over函数的使用
转自: https://blog.csdn.net/a1065423444/article/details/75635611 over()函数写法over(partition by expr2 or ...