zoukankan      html  css  js  c++  java
  • 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

     例:

  • 相关阅读:
    初识python 2.x与3.x 区别
    装饰器
    函数的进阶
    Spring Boot启动问题:Cannot determine embedded database driver class for database type NONE
    22.Spring Cloud Config安全保护
    23.Spring Cloud Bus 无法更新问题(踩坑) Spring cloud config server Could not fetch remote for master remote
    24.Spring Cloud之Spring Cloud Config及Spring Cloud Bus
    Spring Boot整合Spring Data Elasticsearch 踩坑
    项目中Spring Security 整合Spring Session实现记住我功能
    32.再谈SpringBoot文件上传
  • 原文地址:https://www.cnblogs.com/xiaolu915/p/10557690.html
Copyright © 2011-2022 走看看