redis数据库的基础
redis数据库
redis有以下三个特点
- redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
- redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
- redis支持数据的备份,即master-slave模式的数据备份
- 数据提供原子性操作
redis安装与配置
redis数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sort set:有序集合)
redis 键(key)
- del key
删除存在的key
- exists key
检查给定的key是否存在
- keys pattern
正则匹配key名称
- expire key
为给定的key设置过期时间,以秒计
- ttl key
查看key的剩余生存时间/秒(TTL time to live)
- rename key newkey
修改key的名称
- type key
放回key所存储的值类型
- del key
String(字符串)
- 设置
- set key value
设置指定key的值
- mset key value[key value]
同时设置一个或多个key-value对
- setex key seconds value
将值key关联到key,并将key的过期时间设置为 seconds 秒
- setns key value
只有在key不存在时设置key的值
- append key value
如果已经存在并且是一个字符串,该命令将指定的value追加到该key原来值(value)的末尾
- set key value
- 获取
- get key
获取指定key的值
- mget key1 [key2...]
获取所有(一个或多个)给定key的值
- strlen key
放回key所存储的字符串值得长度
- get key
- 设置
hash(哈希)
redis hash 是一个string类型的field和value的映射表,hash特别适合用用于存储对象
redis中每个hash可以存储 2^32 - 1 键值对(40多亿)
- 判断
- hexists key field
查看哈希表key中,指定的字段是否存在
- hexists key field
- 获取
- hkeys key
获取哈希表中的所有值
- hlen key
获取哈希表中字段的数量
- hget key field
获取存储在哈希表中指定字段的值
- hmget key field1 [field2]
获取所有给定字段的值
- hgetall key
获取在哈希表中指定key的所有字段和值
- hvals key
获取哈希表中所有值
- hkeys key
- 设置
- hset key field value
将哈希表key中的字段field的值设置为value
- hmset key field1 value1 [field2 value2]
同时将多个field-value(域-值)对设置到哈希表key中
- hset key field value
- 删除
- hdel key field1 [field2...]
删除一个或多个哈希表字段
- hdel key field1 [field2...]
- 判断
列表(list)
redis列表是简单的字符串类表,按照插入顺序排序。可以添加一个元素到类表的头部(左边)或尾部(右边)
一个类表最多可以包含 2^32 -1个元素
插入
- lpush key value1 [value2...]
将一个或多个值插入到列表头部
- rpush key value1 [value2...]
在列表中添加一个或多个值
- linset key before/after pivot value
在列表元素前或后插入元素(pivot指定列表中的元素,value准备插入的元素)
- lpush key value1 [value2...]
获取
- lrange key start stop
获取列表指定范围内的元素(-1为最后一个)
- lindex key index
通过索引获取列表中的元素
- llen key
获取列表长度
- lpop key
移出并获取列表的第一个元素
- lrange key start stop
- 修改
- lset key index value
通过索引设置列表元素的值
- lset key index value
删除
- lrem key count value
通过索引设置列表元素的值
count>0:从头往尾移除 count=0:从尾往头移除 count<0:移除所有
- lrem key count value
列表和集合的区别
- list提供索引方式添加元素或获取元素,set不提供
- list集合是有序存储,set集合时无序存储(存储地址的有序、无序)
- list 可以存储重复的值,set不可以存储重复的值
- 在随机遍历中,set是根据hash值得大小遍历,呈现出的值是有序
set(集合)
集合成员是唯一的
- 添加
- sadd key member1 [member2..]
- 获取
- scard key
获取集合的成员数
- smembers key
返回集合中的所有成员
- scard key
- 删除
- srem key member1 [member2...]
- 添加
zset (有序集合)
每一个元素都会关联一个double类型的score(权重)
- 添加
- zadd key score1 member1 [score2 member2...]
向有序集合添加一个或多个成员,或者更新已存在成员的score
- zadd key score1 member1 [score2 member2...]
- 获取
- zcard key
获取有序集合的成员数
- zrange key start stop
通过索引区间返回有序集合指定区间内的成员
- zrangebyscore key mix max
通过分数返回有序集合指定区间内的成员
- zscore key member
返回成员member的权重
- zcard key
- 删除
- zrem key member1 [member2..]
删除指定元素
- zremrangebyscore key min max
删除权重在指定范围的元素
- zrem key member1 [member2..]
- 添加
redis主从配置
主配置
- 修改etc/redis/redis.conf 中的 bind:主ip
从配置
- 复制主配置中的redis.conf文件 ===》 重命名 slave.conf
- 修改文件中的 bind:从ip
- slaveof:主ip:主端口 ===》主从备份
- port 从端口
查看主从关系
- redis-cli -h ip -p port info Replication
进入主从客户端
- redis-cli -h ip -p port
主从配置应用
- 可以通过主配置添加修改内容,从配置读取内容(负载均衡)
redis集群
一组相互独立的,通过高速网络互联的计算机,它们构成一个组,并以单一系统的模式加以管理
1. redis集群采用叫哈希槽的方式分配数据,redis cluster默认分配到16384个stost,当写入数据:内部会自动匹配到对应的槽
2.redis集群会把数据存到一个master节点,然后在这个master和其对应的salve之间进行数据同步
3.必须要3个或3个以上节点才能创建集群
软件层面
- 只有一台主机,在这台电脑上启动多个redis服务
硬件层面
- 存在多台主机,每台主机上启动一个或多个redis服务
集群节点配置
- 在/etc/redis 下创建 7000.conf
7000.conf文件中配置信息
1. port 7000
2. bind ip
3. dammonize yes
4. pidfile 7000.pid
5. cluster-enabled yes
6. cluster-config-file 70000_node.conf
7. cluster-node-timeout 15000
8. apendonly yes
- 其他主机创建 70001.conf ,配置同上,修改对应的内容
- 启动服务
- sudo redis-sever ./7000.conf
- 查看集群
- ps aux | grep redis
- 看到关键字:cluster(集群)
- ps aux | grep redis
安装环境依赖
- 安装ruby环境
- sudo apt-get install ruby
- 创建集群
- redis-trib.rb create --replicas 1 ip1:port1 ip2:port2 ...
- 连接集群
- redis-cli -h ip -c -p port
- 安装ruby环境
redis数据库的基础的更多相关文章
- Redis数据库入门基础,及优缺点介绍
简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis 是一个高性能的key-value数据库.R ...
- redis数据库基础篇
一.Redis介绍 Redis 是一个高性能的key-value数据格式的内存缓存,NoSQL数据库.NOSQL:not only sql,泛指非关系型数据库.关系型数据库: (mysql, orac ...
- 关于Redis数据库 ---- 基础篇
Redis数据库也被称为数据结构数据库,因为存储基于key-value模式. 其中,value值可以为字符串(string),哈希(map),列表(list),集合(set)和有序集合(zset). ...
- SpringBoot2.0 基础案例(08):集成Redis数据库,实现缓存管理
一.Redis简介 Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elastic ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- Redis数据库入门教程
[使用redis客户端] 我们直接看一个例子: 复制代码 代码如下: //这样来启动redis客户端了 $ ./redis-cli //用set指令来设置key.value 127.0.0.1:637 ...
- Redis数据库的使用与介绍
本周11-15号开始用Redis数据库在现有的平台基础上开发一个独立模块,这是一个边学习.边记录.边交流.边开发.边总结的过程.大部分随笔都是个人的“工作日志”,旨在记录自己学习过程中收集的一些资料, ...
- [转载]NoSQL数据库的基础知识
关系型数据库和NoSQL数据库 什么是NoSQL 大家有没有听说过“NoSQL”呢?近年,这个词极受关注.看到“NoSQL”这个词,大家可能会误以为是“No!SQL”的缩写,并深感愤怒:“SQL怎么会 ...
- 超强、超详细Redis数据库入门教程(转载)
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...
随机推荐
- 一个能快速写出实体类的Api文档管理工具
今天各种MVC框架满天飞,大大降低了编码的难度,写实体类就没有办法回避的一件事了,花大把的时间去做一些重复而且繁琐的工作,实在不是一个优秀程序员的作风,所以多次查找和尝试后,找到一个工具类网站——Ap ...
- 我的IDEA配置
记录一下我的IDEA配置 图片看不清可以在新的标签页打开,因为被我压缩过了 目录: 1.插件 2.配置 一.插件 1.装逼类 (1)Power Mode II 写代码有飘落的像素效果,增加趣味性,因为 ...
- Exp2后门原理与实践 20164312马孝涛
实验内容 使用netcat获取主机操作Shell,cron启动 (0.5分) 使用socat获取主机操作Shell, 任务计划启动 (0.5分) 使用MSF meterpreter(或其他软件)生成可 ...
- 解决ASP.NET Core MVC调试慢的问题
最近在做的一个项目中,发现网页端同时发起了4个AJAX请求需要数秒才获取到响应,太慢了,当我把请求数降低为1个的时候,速度看起来就比较正常,增加到2个同时的请求后,速度就有些慢了,3个的话就明显慢了, ...
- Java经典面试题+答案(全)
这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试. 1.一个".java"源文件中是否可以包括多 ...
- Android 开发之v4库冲突问题解决方案说明
问题背景 Android Studio 开发时使用到了 GSYVideoPlayer 开源的播放器框架,配置信息如下: implementation 'com.shuyu:GSYVideoPlayer ...
- 使用mysql事件定时执行岗位七天下线任务
最近做了一个招聘的项目,在项目中有一个定时下线的需求.在做之前我一直在考虑到底使用window 服务,还是使用调度,最终我选择使用mysql定时事件,因为这样简单方便. 思路:首先创建一个存储过程,通 ...
- ping命令的七种用法,看完瞬间成大神
一.ping基本使用详解 在网络中ping是一个十分强大的TCP/IP工具.它的作用主要为: 1.用来检测网络的连通情况和分析网络速度 2.根据域名得到服务器IP 3.根据ping返回的TTL值来判断 ...
- 理解ASP.NET Core验证模型(Claim, ClaimsIdentity, ClaimsPrincipal)不得不读的英文博文
这篇英文博文是 Andrew Lock 写的 Introduction to Authentication with ASP.NET Core . 以下是简单的阅读笔记: -------------- ...
- 从壹开始微服务 [ DDD ] 之八 ║剪不断理还乱的 值对象和Dto
缘起 哈喽大家周四好,时间是过的真快,这几天一直忙着在公司的项目,然后带带新人,眼看这周要过去了,还是要抽出时间学习学习,这些天看到群里的小伙伴也都在忙着新学习,还是很开心的,至少当时的初衷已经达到了 ...