Redis学习笔记(一)

定义

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
从该定义中抽出几个关键信息,以表示Redis的特性:

  • 存储结构:key-value。
  • 基于内存亦可持久化,即使服务器重启,存储在redis中的key-value数据依然存在。

Value的数据类型

Redis中的key对应的value可以存储的数据类型有:

  • Strings

  • Lists:

    LPUSH, LRANGE, LLEN
    
  • Sets: 集合(无序)

    	* SADD
    	* SREM(删除操作)
    	* SINTER(交集运算) 
    	* SCARD(集合的总数)
    	* SMEMBERS(无序列出集合的所有元素) 
    
  • Sorted sets:集合(有序)

    集合里每个元素有一个浮点类型的分值,分值决定集合中的元素的排列顺序,集合里的元素都是唯一的。

     ZADD zset 10 a
     有序集合的命令都是以Z开头,例如ZADD。
    
  • Hashes

    HMSET,HGET,HINCRBY,HEXISTS
    

Redis的操作是原子的。例如INCR,就是不能同时对同一个key的value进行增量运算。

命令行工具

redis command line:

下载redis-cli: https://redis.io/download

keys * .

type (key pattern).

HGETALL (key)

使用场景

Redis的适用场景:

  • 数据高并发的读写。配合关系型数据库做高并发缓存,缓存高频次访问的数据,降低数据库io。
  • 海量数据的读写。
  • 多扩展性要求高的数据

Redis不适用的场景:

  • 需要事物支持
  • 基于sql结构化查询存储,关系复杂

Drivers

java中用到的有几个主要的redis drivers/clients:

参考:

https://www.youtube.com/watch?v=5xtEpB2FmMU
https://blog.csdn.net/u011277123/article/details/78692603/

原文地址:https://www.cnblogs.com/holiday2000/p/9620641.html