• Redis介绍


    Redis:是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication)LUA脚本(Lua scripting), LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

    查看Redis命令大全 → 

    redis 安装流程请参考  http://www.runoob.com/redis/redis-install.html

    一、redis的核心配置

    redis的配置信息在redis/redis.conf文件下

    • 绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ip

      bind 127.0.0.1

    • 端⼝,默认为6379

      port 6379

    • 是否以守护进程运⾏

      • 如果以守护进程运⾏,则不会在命令⾏阻塞,类似于服务
      • 如果以⾮守护进程运⾏,则当前终端被阻塞
      • 设置为yes表示守护进程,设置为no表示⾮守护进程
      • 推荐设置为yes

      daemonize yes

    • 数据⽂件

      dbfilename dump.rdb

    • 数据⽂件存储路径

      dir /var/lib/redis

    • ⽇志⽂件

      logfile "/var/log/redis/redis-server.log"

    • 数据库,默认有16个

      database 16

    • 主从复制,类似于双机备份。

      slaveof

    具体请参考资料:redis配置信息http://blog.csdn.net/ljphilp/article/details/52934933

    二、 redis的服务端和客户端

     1. 服务器端

      • 服务器端的命令为redis-server

      • 可以使⽤help查看帮助⽂档

        redis-server --help

      • 个人习惯

        ps aux | grep redis 查看redis服务器进程
        sudo kill -9 pid 杀死redis服务器
        sudo redis-server /etc/redis/redis.conf 指定加载的配置文件

    2.客户端

    • 客户端的命令为redis-cli
    • 可以使⽤help查看帮助⽂档

      redis-cli --help

    • 连接redis

      redis-cli

    运行测试命令:ping

    redis切换数据库命令 select 数据库名(默认16个(0-15))

    二、数据操作

    1. 数据结构

    • redis是key-value的数据结构,每条数据都是⼀个键值对
    • 键的类型是字符串
    • 注意:键不能重复

    值的类型分为五种:

    • 字符串string
    • 哈希hash
    • 列表list
    • 集合set
    • 有序集合zset

    2. 数据操作

    2.1 string操作

    设置键值:set key value

     例:

    设置键值过期时间,以秒为单位:setex key seconds value

    例:

    设置多个键值:mset key1 value1 key2 value2 ...

    例:

    追加值:append key value

    例:

    获取 :get key (根据键获取值,如果不存在此键则返回nil)

     根据多个键获取值:mget key1 key2 ...

    例:

    查找:keys pattern

    查找所有键:keys *

    查找名称中包含a的键:keys a*  

     判断键是否存在:exists key1:

        若存在返回1,若不存在返回2

    例:

    查看键对应的value类型:type key

    例:

    删除键及对应的值:del key1 key2 ...

    例:

    设置过期时间,以秒为单位

    如果没有指定过期时间则⼀直存在,直到使⽤DEL移除

    expire key seconds

    例:

    查看有效时间:ttl key

    例:

    2.2 hash

    • hash⽤于存储对象,对象的结构为属性、值
    • 值的类型为string

    增加、修改

     设置单个属性:hset key field value

     设置多个属性:hmset key field1 value1 field2 value2 ...              

    例:

    获取

    获取指定键所有属性:hkeys key 

    获取一个属性的值:hget key field       

     例:

    获取多个属性的值:hmget key field1 field2 ...  

    例:

    获取所有属性的值:hvals key                        

    例:

    删除: hdel key field1 field2 ...

      删除整个hash键及值,使⽤del命令

      删除属性,属性对应的值会被⼀起删除

    例:

    2.3 list类型

    • 列表的元素类型为string
    • 按照插⼊顺序排序

    获取数据:lrange key start stop

    • start、stop为元素的下标索引
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

     增加:

    在左侧插⼊数据 :lpush key value1 value2 ...

    例:

    在右侧插入数据:rpush key value1 value2 ...

     例:

    在指定元素的前或后插入新元素:linsert key before或after 现有元素 新元素

    结果:

    设置指定索引位置的元素值:lset key index value

    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素

     例:

    删除:lrem key count value

    • 将列表中前count次出现的值为value的元素移除
    • count > 0: 从头往尾移除
    • count < 0: 从尾往头移除
    • count = 0: 移除所有

    例:从列表右侧开始删除a,这里因为只有一个a,所以只能删除一个a,若有3个就删除3个a

    2.4 set类型

    • ⽆序集合
    • 元素为string类型
    • 元素具有唯⼀性,不重复
    • 说明:对于集合没有修改操作

    增加元素:sadd key member1 member2 ...

    获取元素:smembers key

    删除元素:srem key

    例:

    2.5  zset类型

    • sorted set,有序集合
    • 元素为string类型
    • 元素具有唯⼀性,不重复
    • 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序
    • 说明:没有修改操作

    增加:zadd key score1 member1 score2 member2 ...

    例:向 a4 的集合添加元素,且权重为2,3,4

    获取:zrange key start stop

    • 返回指定范围内的元素
    • start、stop为元素的下标索引
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

     例:

    返回score值在min和max之间的成员:zrangebyscore key min max

    获取键 a4 的集合中权限在3跟4之间

    例:

    返回成员member的score值:zscore key member

    获取键 a4 的集合元素的权重

    例:

    删除指定元素:zrem key member1 member2 ...

    例:

    删除权重在指定范围的元素:zremrangebyscore key min max

     例:

  • 相关阅读:
    《世界是数字的》
    IT小小鸟读书笔记
    Codeforces Round #665 Div.2 (CF1401)
    Codeforces Round #662 Div.2 (CF1392)
    std::array的效率问题
    CSS布局学习总结
    TCP中三次握手与四次挥手
    初见Vuex
    初见webpack
    CentOS7使用yum简便安装mysql5.7
  • 原文地址:https://www.cnblogs.com/xiaolu915/p/10557690.html
Copyright © 2020-2023  润新知