Redis服务搭建与基础功能示例
一、Redis简介
Redis是一个非关系型远程内存数据库,它也是一个Key-value模型的数据库。Redis支持5种数据类型(string、list、set、sorted set、hash),可以将各式各样的问题很自然的映射到这些数据结构上。虽然Redis是一个内存数据库,但可通过自身的复制、持久化等特性,很方便的将数据存储到磁盘,并且Redis有着每秒上百万次的请求处理能力。
Redis可用作数据库(Database)、缓存(Cache)和消息代理(Message Broker)。Redis还自带复制、事务、主从复制、Lua脚本、存储项淘汰、高可用Redis Sentinel、Redis Cluster等功能。
二、Redis安装
Redis现在最新版已经升级到了5.0,epel版本为Redis3.0。这里介绍yum安装Redis:
1.yum安装:
~]# yum install -y redis
/etc/logrotate.d/redis #
/etc/redis-sentinel.conf #哨兵服务配置文件
/etc/redis.conf #主程序配置文件
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark #评估程序
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli #Redis客户端程序
/usr/bin/redis-sentinel #Redis哨兵服务程序
/usr/bin/redis-server #Redis主程序
/usr/lib/systemd/system/redis-sentinel.service #CentOS7上的哨兵服务管理程序
/usr/lib/systemd/system/redis.service ##CentOS7上的主程序管理程序
/usr/libexec/redis-shutdown
/usr/share/doc/redis-3.2.
/usr/share/doc/redis-3.2./-RELEASENOTES
/usr/share/doc/redis-3.2./BUGS
/usr/share/doc/redis-3.2./CONTRIBUTING
/usr/share/doc/redis-3.2./MANIFESTO
/usr/share/doc/redis-3.2./README.md
/usr/share/licenses/redis-3.2.
/usr/share/licenses/redis-3.2./COPYING
/usr/share/man/man1/redis-benchmark..gz
/usr/share/man/man1/redis-check-aof..gz
/usr/share/man/man1/redis-check-rdb..gz
/usr/share/man/man1/redis-cli..gz
/usr/share/man/man1/redis-sentinel..gz
/usr/share/man/man1/redis-server..gz
/usr/share/man/man5/redis-sentinel.conf..gz
/usr/share/man/man5/redis.conf..gz
/var/lib/redis #默认数据目录
/var/log/redis #默认日志目录
/var/run/redis
2.启动Redis
~]# systemctl start redis
~]# ss -lnt #查看监听端口状态,Redis默认监听端口为6379
在没有配置认证的情况下,可以直接登入Redis:
~]# redis-cli
127.0.0.1:>
可用 redis-cli -h 获取相关参数选项及功能,常用参数如下:
-h <hostname>:Redis服务端的地址
-p <port>:指定连接的端口,默认为6379
-s <socket>:若不是通过IP+端口则可使用指定socket登录
-a <password>:连接Redis的密码,Redis的认证设置只有用户名没有密码。Redis用户名默认就一个,没有权限分级的概念。
连接至Redis后可用 SELECT 选择数据库:
:> SELECT #Redis默认用数字来代表库。
OK
3.Redis种5值的类型的基本使用介绍
Redis是Key-value类型,它所有的数据都是键值类型,但值的类型有5种:
1.String
常用指令:
SET <key> <value> #将key的值设置为value,value可以是数值。还可以设置数据的有效期限,过期时间。
GET <key> #获取key的数据
APPEND <key> <value> #追加数据
DECR <key> #键值加1
DECRBY #键值加指定数值
INCR <key> #键值减1
INCR <key> #键值减指定数值
MSET <key> <value> #一次创建多个键值
MGET <key> #一次查看多个键值
例:
127.0.0.1:> SET name tom
OK
127.0.0.1:> GET name
"tom"
127.0.0.1:> APPEND name jerry
(integer)
127.0.0.1:> GET name
"tomjerry"
127.0.0.1:> SET count
OK
127.0.0.1:> INCR count
(integer)
127.0.0.1:> GET count
""
127.0.0.1:> INCR count
(integer)
127.0.0.1:> GET count
""
127.0.0.1:> INCRBY count
(integer)
127.0.0.1:> GET count
""
127.0.0.1:>
2.List
LIst可以理解为一个队列,如图:
常用指令:
LSET <key> <index> <value> #根据索引设定值
RPUSH <key> <value> #从右侧增加值
LPUSH <key> <value> #从左侧增加值
RPOP <key> #从右侧弹出(删除)值,只能是首尾
LPOP <key> #从左侧弹出(删除)值,只能是首尾
RPUSHX <key> <value> #从右侧增加值,列表必须存在
LPUSHX <key> <value> #从左侧增加值,列表必须存在
LREM #删除指定值
LINDEX <key> <index> #从索引中获得一个元素
LLEN <key> #查看Key有多少个元素
例:
127.0.0.1:> LPUSH weekdays Mon Tue
(integer)
127.0.0.1:> LINDEX weekdays
"Tue"
127.0.0.1:> LINDEX weekdays
"Mon"
127.0.0.1:> RPUSH weekdays Wed Thu
(integer)
127.0.0.1:> LINDEX weekdays
"Wed"
127.0.0.1:> LINDEX weekdays
"Thu"
127.0.0.1:> LPOP weekdays
"Tue"
127.0.0.1:> RPOP weekdays
"Thu"
127.0.0.1:> LINSERT weekdays BEFORE Wed Fri
(integer)
127.0.0.1:> LINDEX weekdays
"Fri"
3.Hash
HSET <key> <field> <value> :设定键和值还有下标
HMSET <key> <field> <value>:设定多个键和值还有下标
HGET <key> <field>:查看键的下标
HMGET <key> <field>:查看多个键的下标
HKEYS <key>:显示所有定义的key
HVALS <key>:显示所有的value
HDEL <key> <field>:删除指定键的下标
HGETALL <key>:显示所有
例:
127.0.0.1:> HSET stu1 name tom
(integer)
127.0.0.1:> HSET stu1 age
(integer)
127.0.0.1:> HMSET stu1 gender Male major Computer
OK
127.0.0.1:> HKEYS stu1
) "name"
) "age"
) "gender"
) "major"
127.0.0.1:> HVALS stu1
) "tom"
) ""
) "Male"
) "Computer"
4.Set
无序集合数据类型,主要用来求交差并补集的
例:
127.0.0.1:> SADD tom jack hermes tony
(integer)
127.0.0.1:> SADD jerry tony trump real
(integer)
127.0.0.1:> SINTER tom jerry
) "tony"
127.0.0.1:> SUNION tom jerry
) "hermes"
) "jack"
) "tony"
) "real"
) "trump"
127.0.0.1:> SDIFF jerry tom
) "trump"
) "real"
127.0.0.1:> SDIFF tom jerry
) "hermes"
) "jack"
127.0.0.1:> SPOP jerry
"trump"
127.0.0.1:> SMEMBERS tom
) "tony"
) "hermes"
) "jack"
5.Sorted-set
与Set类型相似,但Sort-set属于有序集合。
例:
127.0.0.1:> ZADD colors red blue yellow green gray
(integer)
127.0.0.1:> ZCARD colors
(integer)
127.0.0.1:> ZSCORE colors red
""
127.0.0.1:> ZRANGE colors
) "red"
) "blue"
) "yellow"
) "gray"
) "green"
4.订阅
常用指令:
PSUBSCRIBE <pattern>:订阅指定频道的指定内容
PUBLISH <channel> <message>:生成频道并往频道中生产信息
PUNSUBSCRIBE <pattern>:取消订阅指定频道的指定内容
SUBSCRIBE <channel>:订阅整个频道
UNSUBSCRIBE <channel>:取消订阅整个频道
例:
Redis服务搭建与基础功能示例的更多相关文章
- Tomcat集群+Nginx+Redis服务搭建
由于公司新业务突然上来了,单个Tomcat实例已经不能满足业务发展的需要了,只能通过搭建集群来解决问题了.所以就出现了下面的内容: 1.Redis保存Session信息 为了保存Session信息在集 ...
- Linux redis服务搭建记录
Redis的安装 1.安装redis需要C语言的编译环境 //gcc在线安装 yum install gcc-c++ 如果提示 /var/run/yum.pid 已被锁定,解决办法,删除yum.pid ...
- Redis 服务搭建
1.redis 简介 Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis ...
- PHP进阶与redis锁限制并发访问功能示例
<?php /** * Redis锁操作类 * Date: 2017-06-30 * Author: fdipzone * Ver: 1.0 * * Func: * public lock 获取 ...
- 浅谈基于Linux的Redis环境搭建
本篇文章主要讲解基于Linux环境的Redis服务搭建,Redis服务配置.客户端访问和防火强配置等技术,适合具有一定Linux基础和Redis基础的读者阅读. 一 Redis服务搭建 1.在根路径 ...
- docker-compose 构建mongodb并导入基础数据示例
使用docker-compose构建mongodb服务并导入基础数据示例. 1.文件目录结构 ——mongo/ |——docker-compose.yml |——mongo-Dockerfile |— ...
- 黑客是如何通过开放的Redis服务入侵服务器的
0x00 简要说明 百度百科:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-V ...
- 学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
目录 第一部分:Consul 基础 1,Consul 介绍 2,安装 Consul Ubuntu/Debian 系统 Centos/RHEL 系统 检查安装 3,运行 Consul Agent 启动 ...
- 高可用Redis服务架构分析与搭建
基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量 ...
随机推荐
- Android使用ksoap2调用C#中的webservice实现图像上传
目录: 一. android使用ksoap2调用webservice 二. 异步调用 三. Android使用ksoap2调用C#中的webservice实现图像上传参考方法 四. 图像传输中Base ...
- 深入C#的String类
- (PMP)第13章-----项目相关方管理
13.1 识别相关方 1 相关方分类的方法: 1.1 权力/利益方格,权力/影响方格,影响/作用方格(小型项目,关系简单) 权力:基于相关方的职权级别: 利益:对项目成果的关心程度 影响:对项目成果的 ...
- python伪装浏览器
def get_content(url): req_header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/53 ...
- python bittorrent 使用与学习
更新于20171128 关于这个p2p的技术,阿里开源了蜻蜓,大家可以看看,感觉应该比这个要好用,而且文档也全. 前言 最近在学习python的p2p协议,发现网上找不到好的文章,又仔细找了找终于找到 ...
- Beta冲刺 (7/7)
Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1:(组长)柯奇豪 过去两天完成了哪些任务 部分代码的整合 编辑文章部分的完成 ...
- 长方体类Java编程题
1. 编程创建一个Box类(长方体),在Box类中定义三个变量,分别表示长方体的长(length).宽(width)和高(heigth),再定义一个方法void setBox(int l, int w ...
- MyBatis 源码分析 - SQL 的执行过程
* 本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程.该过程本身比较复杂,牵涉到的技术点比较多.包括但不限于 Mapper 接口代理类的生成.接口方法的解析.SQL 语句的解析 ...
- 设置Acad2008默认启动 win10设置默认cad2008启动 调试设置.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\AutoCAD.Drawing.17\shell\open\command]@=&quo ...
- Java 中的 HttpServletRequest 和 HttpServletResponse 对象
HttpServletRequest对象详解 javax.servlet.http.HttpServletRequest是SUN制定的Servlet规范,是一个接口.表示请求,“HTTP请求协议”的完 ...