• Redis


    Redis是一个开源的使用ANSI C语言编写、遵守BDS协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    Redis又称为数据结构服务器,因为值(value)有以下:字符串(String)、哈希(Hash)、列表(list)、集合(set)、有序集合(Zset)。

    Redis的特点:1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

                               2、Redis不仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash数据结构的存储

                               3、Redis支持数据的备份,即master-slave模式的数据备份。

    Redis优势:性能极高(读写速度快)、丰富的数据类型、原子性(Redis的所有操作都是原子性的,原子性:要么成功执行要么失败完全不执行)

    Redis支持五种数据类型:字符串(String)、哈希(Hash)、列表(list)、集合(set)、有序集合(Zset)

    String(字符串)

    一个key对应一个value,String类型的值最大能存储512MB

    Hash(哈希)

    Hash是一个键值(key==>)对集合,Hash是一个String类型的field和value的映射表,hash特别适合用于存储对象

    List(列表)是简单的字符串列表,按照插入顺序排序

    Set(集合)

    Set是string类型的无序集合

    集合是通过哈希表实现,添加、删除、查找的复杂度都是O(1)。

    Zset(sorted   set:有序集合)

    类型

    简介

    特性

    场景

    String(字符串)

    二进制安全

    可以包含任何数据(jpg图片或序列化的对象),一个键最大能存储512M

     

    Hash(哈希值)

    键值对集合,Map类型

    适合存储对象,并且可以像数据库中的update一个属性一样只修改一项属性值

    存储、读取、修改用户属性

    List(列表)

    链表(双向链表)

    增删快、提供了操作某一段元素的API

    1、最新消息排行榜、2、朋友圈的时间线

     

    3、消息队列

    Set集合

    哈希表实现、元素不重复

    1、添加、删除、查找的复杂度都是O(1)

    2、为集合提供了求交集、并值、差集

     

    1、共同好友

    2、利用唯一性,统计访问网站的所有独立ip

    3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐

    SortedSet(有序集合)

    将Set中的元素增加一个权重参数score、元素按score有序排序

    数据插入集合时、已进行排序

    1、排行榜

    2、带权重的消息队列

    Redis命令

    要在redis服务上执行命令需要一个redis客户端,存在于默认的安装包中

    启动redis客户端:redis-cli,连接本地的redis服务         

    避免中文乱码:redis-cli    - - raw

    连接到本地的redis服务并执行ping命令,用于检测redis服务是否启动

    redis-cli  -h  host  -p  port   -a  password

    例:redis-cli  -h 127.0.0.1  -p  6379   -a     "mypass"  

     Redis keys命令

    Redis Key 命令

    DEL  key

    Key存在时删除key

    DUMP  key

    序列化给定key,并返回被序列化的值

    EXISTS  key

    检查给定的key是否存在

    EXPIRE  key seconds

    设置key的过期时间,以秒计

    EXPIREAT  key  timestamp

    设置过期时间,接受的参数是timestamp

    PEXPIRE key milliseconds

    设置key的过期时间以毫秒计

    PEXPIREAT key milliseconds-timestamp

    设置key过期的时间戳

    KEYS  pattern

    查找所有符合给定模式的key

    MOVE key db

    将当前数据库的key移动到给定的数据库db中

    PERSIST  key

    移除key的过期时间,key将持久保持

    PTTL  key

    以毫秒为单位返回key的剩余的过期时间

    TTL  key

    以秒为单位,返回给定的key的剩余生存时间(TTL,time to  live)

    RANDOMKEY

    从当前数据库中随机返回一个key

    RENAME  key  newkey

    修改key的名称

    RENAME  key   newkey

    仅当newkey不存在时,将key改名为newkey

    TYPE  key

    返回key所储存的值的类型

    Redis     Hash(哈希)

    hash是一个string类型的field和value的映射表,hash特适用于存储对象

    Redis  hash命令

    Hash命令

     

    HDEL  key  field

    删除一个或多个哈希表字段

    HEXISTS  key field

    查看哈希表key中,指定的字段是否存在

    HGET key  field

    获取存储在哈希表中指定字段的值

    HGETALL  key

    获取在哈希表中指定key的所有字段和值

    HKEYS key

    获取所有哈希表中的字段

    HLEN  key

    获取哈希表中字段的数量

    HMGET  key field

    获取所有给定字段的值

    HMSET  key1 field  value1

    同时将多个field-value(域值对设置到哈希表key中)

    HSET  key field  value

    将哈希表中key中的字段field的值设为value

    HSETNX  key field value

    只有在字段field不存在时,设置哈希表字段的值

    HVALS  key

    获取哈希表中所有值

    HSCAN  key  cursor

    迭代哈希表中的键值对

    Redis    列表(List)

    列表是简单的字符串列表,按照插入顺序排序。(可以添加一个元素到列表的头部或者尾部)

    List(列表)

    BLPOP key1[key2] timeout

    移出并获取列表的第一个元素

    BRPOP  key1[key2] timeout

    移出并获取列表的最后一个元素

    BRPOPLPUSH  source destination  timeout

    从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它

    LINDEX  key index

    通过索引获取列表中的元素

    LINSERT  key  BEFORE|AFTER  pivot  value

    在列表的元素前或后插入元素

    LLEN key

    获取列表长度

    LPOP  key

    移出并获取列表的第一个元素

    LPUSH  key  value

    将一个或多个值插入到列表头部

    LPUSHX  key  value

    将一个值插入到已存在的列表头部

    LRANGE  key start stop

    获取列表指定范围内的元素

    LREM  key  count value

    移除列表元素

    LSET  key index value

    通过索引设置列表元素的值

    LTRIM  key start stop

    对一个列表进行修剪

    RPOP key

    移除列表的最后一个元素,返回值为移除的元素

    RPOPLPUSH  source  destination

    移除列表的最后一个元素,并将该元素添加到另一个列表并返回

    RPUSH  key value

    在列表中添加一个或多个值

    RPUSHX  key  value

    为已存在的列表添加值

    Redis  Set(集合)

    Set是String类型的无序集合。集合成员是唯一的,集合中不能出现重复的数据。

    Redis中集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。

    Set集合命令

    SADD key1  member1

    向集合添加一个或多个成员

    SCARD  key

    获取集合的成员数

    SDIFF  key1

    返回给定所有集合的差集

    SDIFFSTORE   destination key1

    返回给定所有集合的差集并存储在destination中

    SINTER key1

    返回给定所有集合的交集

    SINTERSTORE  destination key1

    返回给定所有集合的交集并存储在destination中

    SISMEMBER  key member

    判断member元素是否是集合key的成员

    SMEMBERS  key

    返回集合中的所有成员

    SMOVE   source  destination  member

    将member元素从source集合移动到destination集合

    SPOP key

    移除并返回集合中的一个随机元素

    SRANDMEMBER key

    返回集合中一个或多个随机数

    SREM  key member1

    移除集合中一个或多个成员

    SUNION  key1

    返回所有给定集合的并集

    SUNIONSTORE destination key1

    所有给定集合的并集存储在destination集合中

    SSCAN  key  cursor

    迭代集合中的元素

    Redis   Sorted  Set有序集合

    Redis有序集合是String类型元素的集合,且不允许重复的成员

    有序集合的成员是唯一的,但分数(Score)却可以重复

    集合是通过哈希表实现,添加、删除、查找的复杂度都是O(1).

    Sorted Set(有序集合)

    ZADD  key  score1  member

    向有序集合添加一个或多个成员

    ZCARD  key

    获取有序集合的成员数

    ZCOUNT key  min max

    计算在有序集合中指定成员的分数的成员数

    ZINCRBY key  increment member

    计算给定的一个或多个有序集合的交集并将结果集存储在新的有序集合key中

    ZLEXCOUNT  key  min max

    在有序集合中计算指定字典区间内的成员数量

    ZRANGE  key  start stop

    通过索引区间返回有序集合成指定区间内的成员

    ZRANGEBYLEX key min max

    通过字典区间返回有序集合的成员

    ZRANGEBYSCORE  key  min max

    通过分数返回有序集合指定区间内的成员

    ZRANK  key  member

    返回有序集合中的一个或多个

    ZREM  key member

    移除有序集合中的一个或多个

    ZREMRANGEBYLEX   key  min max

    移除有序集合中给定的字典区间的所有成员

    ZREMRANGEBYRANK  key start  stop

    移除有序集合中给定的排名区间的所有成员

    ZREMRANGEBYSCORE  key min max

    移除有序集合中给定的分数区间的所有成员

    ZREVRANGE  key start stop

    返回有序集合中指定区间内的成员,通过索引,分数从高到低

    ZREVRNGEBYSCORE  key max min

    返回有序集合中指定分数区间内的成员,分数从高到低

  • 相关阅读:
    【PHP学习】PHP 变量
    【PHP学习】PHP 语法
    枚举进程使用的DLL
    多线程学习----CreateThread
    C++接口定义及实现举例
    注册表操作(VC_Win32)
    Windows 动态链接库编程
    [代码]JAVA触发器,Spring的quartz配置
    [实例]JAVA调用微信接口发送图文消息,不用跳到详情页
    [实例]JAVA生成字母+随机数字并生成文件
  • 原文地址:https://www.cnblogs.com/cye9971-/p/11167490.html
Copyright © 2020-2023  润新知