Redis基础及入门
一. 什么是 Redis
Redis 是一个可基于内存,有着完备的持久化机制并以 Key-Value 形式存储的非关系型数据库。也称为数据结构服务器。
二. Redis 的优势。
支持数据的持久化,可以将内存中的数据保存在磁盘中,便于重启时再次使用。也就是我们平时说的缓存机制。
提供 list ,set ,zset ,hash 等数据结构的存储
支持数据的备份。即master-slave模式的数据备份。
三. 服务端的安装以及启动客户端
1. 安装并启动服务端
$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz --获取到下载版本的网址
$ tar xzf redis-3.2.9.tar.gz --解压压缩包
$ cd redis-3.2.9 --打开目录
$ make --编译
$ src/redis-server redis.conf --启动服务端(使用默认端口6379)
启动成功后:
2. 启动客户端
$ src/redis-cli [-h 127.0.0.1 -p 6379]
PS: 查看连接信息
ps -ef | grep redis-3.2.9
修改端口号
vim redis.conf -- 打开redis.conf配置文件
(如果没有安装vim,系统会提示使用apt install vim 安装)
找到端口号所在位置,port 6379
shift + r 把原端口号替换为7000
:wq 保存修改并退出 至此,我们的端口号就变成7000啦
关闭服务器
1. $ src/redis-cli [-h 127.0.0.1 -p 6379] shutdown
2. kill -9 redis-server [使用管理员身份运行]
四. Redis命令及数据类型
1. 数据类型
String:
redis 的最基本类型。可以是任何数据,如字符串、整数、浮点,这些统称为元素。
示例:
常用命令:
SET key value :设置指定 key 的值
GET key :获取指定 key 的值
MGET key1 [ key2 ... ] :获取多个指定 key 的值
STRLEN key :返回 key 所存储的字符串值的长度
MSET key1 value1 [ key2 value2 ... ] :同时设置一个或多个 key -value
INCR key :将 key 中存储的数字 + 1
INCRBY key increment:给 key 中存储的数字加上指定数字( increment )
DECR key:将 key 中存储的数字 - 1
DECRBY key decrement:给 key 中存储的数字减去指定数字( increment )
APPEND key value :追加字符串
hash (哈希表):
key-value的散列组,是一个string类型的field和value的映射表,适合用于存储对象
示例:
常用命令:
HSET key field value:将哈希表 key 中的字段 field 的值设为 value
HGET key field:获取存储在哈希表中指定字段的值。
HLEN key:获取哈希表中字段的数量
HMGET key field1 [ field2 ... ]:获取全部字段的值
HMSET key field1 value1 [ field2 value2 ... ]:同时将多个 field-value (域-值)对设置到哈希表 key 中。
list:
一个有序的序列集合并且每个节点都包含了一个元素
示例:
常用命令:
LLEN key:获取列表长度
LPUSH key value1 [ value2 ... ]:将一个或多个值插入列表
RPOP key:移除并获取列表最后一个元素
LPOP key:移出并获取列表的第一个元素
LRANGE key start stop:获取列表指定范围内的元素
set:
存储各不相同的元素
示例:
常用命令:
SADD key member1 [ member2 ... ]:向集合添加一个或多个成员
SMEMBERS key member:返回集合中的所有成员
SREM key member1 [ member2 ... ]:移除集合中一个或多个成员
SCARD key:获取集合的成员数
SISMEMBER key member:判断 member 元素是否是集合 key 的成员
sort set (有续集合):
带分数的score-value有序集合,其中 value 是唯一的
示例:
常用命令:
ZADD key score1 member1 [ score2 member2 ... ]:向有序集合添加一个或多个成员,或修改已存在成员的分数
ZCARD key:获取有序集合的成员数
ZRANK key member:返回有序集合中指定成员的索引
ZRANGE key start stop [ WITHSCORES ]:通过索引区间返回有序集合指定区间内的成员
ZCOUNT key min max:计算在有序集合中指定区间分数的成员数
ZREM key member [ member2 ... ]:移除有序集合中的一个或多个成员
2. 命令
1. HyperLogLog
用来做基数统计的算法。无论输入元素的数量或体积有多大,都只占用固定的、很少的空间。且元素只用来计算基数,并不会存储元素本身。
常用命令:
PFADD key element [ element ... ]:添加指定元素到 HyperLogLog 中
PFCOUNT key [ key ... ]:返回给定 HyperLogLog 的基数估算值。
PFMERGE destkey soucekey [ sourcekey ... ]:将多个 HyperLogLog 合并为一个 HyperLogLog
2. 发布订阅(pub/sub)
一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
客户端可以订阅任意数量的频道。
常用命令:
PSUBSCRIBE pattern [ pattern ... ]:订阅一个或多个符合给定模式的频道
PUBSUB subcommand [argument [ argument ... ] ]:查看订阅与发布系统状态。
PUBLISH channel message:将信息发送到指定的频道。
PUNSUBSCRIBE [ pattern [ pattern ... ] ]:退订所有给定模式的频道
SUBSCRIBE channel [ channel ... ]:订阅给定的一个或多个频道的信息。
UNSUBSCRIBE [ channel [ channel ... ] ]:指退订给定的频道。
3. 事物
可一次性执行多个命令且1. 事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。(事物是一个单独隔离操作) 2. 事务中的命令要么全部被执行,要么全部都不执行。(事务是一个原子操作)
执行过程:开始事物 --> 命令入队 --> 执行事务
常用命令:
MULTI:标记一个事物块的开始
EXEC:执行所有事务块内的命令。
DISCARD:取消事务,放弃执行事务块内的所有命令。
UNWATCH:取消 WATCH 命令对所有 key 的监视。
WATCH:监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
4. 脚本
使用 Lua 解释器来执行脚本。
常用命令:
EVAL script numkeys key [key ...] arg [arg ...]:执行 Lua 脚本。
SCRIPT EXISTS script [ script ... ]:查看指定的脚本是否已经被保存在缓存当中。
SCRIPT FLUSH:从脚本缓存中移除所有脚本
SCRIPT KILL:杀死当前正在运行的 Lua 脚本。
SCRIPT LOAD script:将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本
5. 连接
连接 redis 服务
常用命令:
AUTH password:验证密码是否正确
ECHO message:打印字符串
PING:查看服务是否运行
QUIT:关闭当前连接
SELECT index:切换到指定的数据库
6. 服务器
管理 redis 服务
常用命令:
BGSAVE:在后台异步保存当前数据库的数据到磁盘
CLIENT KILL [ip:port] [ID client-id]:关闭客户端连接
CLIENT LIST:获取连接到服务器的客户端连接列表
CLIENT GETNAME:获取连接的名称
CLIENT PAUSE timeout:在指定时间内终止运行来自客户端的命令
CLIENT SETNAME connection-name:设置当前连接的名称
CLUSTER SLOTS:获取集群节点的映射数组
CONFIG REWRITE:对启动 Redis 服务器时所指定的 redis.conf 配置文件进行改写
INFO [section]:获取 Redis 服务器的各种信息和统计数值
LASTSAVE:返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示
ROLE:返回主从实例所属的角色
SAVE:异步保存数据到硬盘
SHUTDOWN [NOSAVE] [SAVE]:异步保存数据到硬盘,并关闭服务器
SLAVEOF host port:将当前服务器转变为指定服务器的从属服务器(slave server)
7. 数据备份与恢复
8. 安全
9. 性能测试
10. 客户端连接
11. 管道技术
12. 分区
五. Redis 的配置文件(redis.conf)参数详解
六. 扩展内容
Redis基础及入门的更多相关文章
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- spring boot集成redis基础入门
redis 支持持久化数据,不仅支持key-value类型的数据,还拥有list,set,zset,hash等数据结构的存储. 可以进行master-slave模式的数据备份 更多redis相关文档请 ...
- Linux基础知识入门
[Linux基础]Linux基础知识入门及常见命令. 前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...
- Redis详解入门篇
Redis详解入门篇 [本教程目录] 1.redis是什么2.redis的作者3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介 ...
- 零基础快速入门SpringBoot2.0教程 (三)
一.SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1.官网地址:https://docs.spring.io/spring-boot/doc ...
- REDIS基础笔记
Redis基础笔记 资源链接 简介 简介 安装 五种数据类型及相应命令 1. 字符串类型 2. 散列类型 3. 列表类型 4. 集合类型 5. 有序集合 其他 事务 SORT 生存时间 任务队列 发布 ...
- Redis详解入门篇(转载)
Redis详解入门篇(转载) [本教程目录] 1.redis是什么2.redis的作者3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 ...
- [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...
- 答好友困惑:Java零基础如何入门,不知道怎么学,迷茫ING
作者:程序员小跃 几个星期之前,我在知乎上看到一个提问,说是:对于完全没有经验零基础自身的数学底子也很弱学习Java应该怎么学习呢?想着类似的问题我也有过回答,并且反馈还是蛮好的,就参考之前的思路回答 ...
随机推荐
- Thrift之TProtocol系列TBinaryProtocol解析
首先看一下Thrift的整体架构,如下图: 如图所示,黄色部分是用户实现的业务逻辑,褐色部分是根据thrift定义的服务接口描述文件生成的客户端和服务器端代码框架(前篇2中已分析了thrift ser ...
- xml报错 Parse Fatal Error :在实体引用中,实体名称必须紧跟在'&'后面
修改jndi配置文件中的密码后,重启tomcat报错如下 实际问题是xml中默认’&’是非法字符,用 & 替代
- [转] Freemarker的常用技巧总结
1,截取字符串 有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度 < lt. <= lte. > gt. >= gte < ...
- [知了堂学习笔记]_Jquery_Validate 表单校验的使用
一.效果图: 二.JqueryValidate的好处 在做注册.或者类似以上的表单提交的时候,大家是不是都很烦那种,把数据拿到后台去判断, 可能经过了正则表达式之类的复杂判断,然后发现数据错误.接着通 ...
- Docker 创建ubuntu ,ssh,vnc 可连接
**************************************************************************************************** ...
- 动态添加div及对应的js、css文件
动态添加div及对应的js.css文件 在近期的项目开发中需要在首页中添加很多面板型的div,直接加载代码显得很繁琐,于是利用js封装一个动态添加div及其对应css文件和js文件的方法供大家参考使用 ...
- Linux下如何释放cache内存
转自:http://www.linuxidc.com/Linux/2015-02/112685.htm 在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作 ...
- linux_发邮件
如何通过linux发邮件? 邮箱配置文件: /etc/mail.rc 1. 邮箱文件配置 vim /etc/mail.rc # 添加一下数据 set from=beimen@163.com smtp= ...
- Linux用户登录记录日志和相关查看命令汇总
# 1 utmp.wtmp.btmp文件 Linux用户登录信息放在三个文件中: 1 /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记 ...
- Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
Java8内存模型—永久代(PermGen)和元空间(Metaspace) 查看原文点击传送门:http://www.cnblogs.com/paddix/p/5309550.html 提示:本文做了 ...