redis概述、使用

redis是什么

redis是一个存储数据的容器,相当于数据库能存储数据是一样的,实现对数据的增删查改


 

特性

 

  • nosql: not only structured query language 不仅结构化查询语言,一类操作命令的统称 sql
  • key-value : 为了处理非结构化数据,使用key-value的数据结构处理数据.处理结构化数据的技术--关系型数据库,处理非结构化数据--redis mongdb hdfs
  • 内存运行:redis在运行过程,数据在内存中处理
    • redis使用结构:包含2 服务端运行处理数据的进程

      登录redis服务端操作数据的客户端

  • 优点缺点:
    • 优点:速度快
    • 缺点:
      • 内存容量,相对于磁盘较小,redis存储空间资源稀缺
      • 内存断电丢失数据情况,数据容错性比较低
  • 分布式一个redis节点内存容量小,可以多启动几个rendis,行程分布式集群解决容量小的问题,相对单个redis进程,处理容量呈线性增长(总量还是不如磁盘多),分布式结构中就要解决分布式的问题--数据分片计算
  • 持久化: redis的数据虽然是在内存处理的,但是redis提供持久化的功能,可以按照持久化的机制,将内存数据保存在磁盘一份.即使内存数据断点丢失了,也可以保证数据依然存在继续被使用--挺高redis容错性.

启动

  • 服务端启动

  1. 默认启动:redis-server

   默认的属性

   例如:

     port:6379

     默认开启保护模式:只允许本机客户端登录

     默认关闭守护进程:占用控制台输出日志

   退出关闭进程直接使用:ctrl+c

  2.指定启动:redis-server  脚本路径

     关闭:1.查看进程id     ps -ef|grep redis  

         直接杀死id    kill  pid

        2.可以直接关闭:shutdown

      


redis的基础命令

  •  keys *   

表示在客户端查看当前redis服务端内存中所有的数据key值。

将已有的数据返回,没有数据时,返回空。这里返回的都是内存中保存的数据key

♦  不支持分布式结构。不能通过一个keys * 从一个redis服务中查看其它redis数据

♦  生产环境(客户使用环境)使用keys *不合理,造成读数据阻塞(一次读太多数据)

127.0.0.1:6379> keys *

1) "location"

2) "gender"

3) "age"

4) "name"

127.0.0.1:6379>

 

 

  • exists key

 

表示要查看一下对应的key值数据是否在redis内存中存在。

♦  如果判断存在的数据,有读的操作,比如字符串类型的get,不需要exists的存在了呢?不可以使用get这种读操作代替exists判断存在的操作,因为使用读判断存在,浪费了读数据的带宽。而且redis 最新版本一个value数据可以达到1GB大小。

127.0.0.1:6379> exists age

(integer) 1

127.0.0.1:6379> exists heiheihei

(integer) 0

 

  • expire/pexpire key time

 

redis中,可以根据需求对写入的数据设置超时时间,一旦到达超时条件将会在内存中把数据删除,expire 对某个key的数据做秒单位的超时,pexpirekey值做毫秒单位的超时。没有使用相关超时的数据写入时,默认是永久数据。  

127.0.0.1:6379> expire location 5

(integer) 1

127.0.0.1:6379> keys *

1) "gender"

2) "age"

3) "name"

 

  • ttl/pttl key

    在执行设置了超时时间的key值上,查看这个key的剩余时间。ttl操作一个key能够看到剩余时间单位是秒,pttl看得是毫秒。

127.0.0.1:6379> expire name 100

(integer) 1

127.0.0.1:6379> ttl name

(integer) 89

127.0.0.1:6379> pttl name

(integer) 83322

127.0.0.1:6379>

  • del key删除数据

    del可以对指定的key-value进行删除操作。

127.0.0.1:6379> keys *

1) "gender"

2) "age"

127.0.0.1:6379> del gender

(integer) 1

127.0.0.1:6379> keys *

1) "age"

127.0.0.1:6379>

  • save 存储持久化

 

redis支持持久化,将内存数据,输出到持久化文件,内存数据保存在磁盘上。

redis重新启动时自动加载保存的持久化文件,将数据恢复回来。

save命令的调用,就是将内存数据输出到持久化文件中保存。

127.0.0.1:6379> keys *

1) "age"

127.0.0.1:6379> get age

"18"

127.0.0.1:6379> save

OK

127.0.0.1:6379>

 

  • flushall

冲刷所有,删除所有数据。将当前redis服务的内存数据和持久化文件中的数据全部清空。

♦  尽可能只在测试环境使用,不要到生产环境。


 

 


五种数据类型

1.String类型数据

2.hash类型

3.List双向链表

4.SET集合

5.ZSET有序集合




后续内容自己只是了解,等摸透后继续更新,一般使用都是直接用封装好的使用




redis算法

1.hahs取余算法

2.一致性hash



redis的高可用哨兵redis-sentinel



redis-cluster集群



 

 

posted @ 2020-04-19 23:38  jack329  阅读(120)  评论(0)    收藏  举报