• Redis基操


    Redis

    key-value类型的缓存数据库

    指定IP和端口连接redis:

    ./redis-cli -h ip -p port

    Redis基本操作命令

    命令 返回值 简介
    ping PONG 测试是否连接到Redis服务端
    dbsize 当前数据库key的数量(int) 查看key的数量
    select db select index(默认0-15) redis默认初始化16个数据库,selet可进行切换
    flushdb OK 删除当前数据库的所有数据
    exit/quit 退出redis连接

    Redis操作key的命令

    命令 语法 介绍
    keys keys pattern 查找所有pattern匹配的key, pattern可使用通配符*,?
    exists exists key[key...] 判断key是否存在,存在返回1 不存在返回0
    expire expire key seconds 设置key的生存时间,单位秒
    ttl time to live 返回key的存活时间 -1key永生 -2key不存在
    type type key 查看key的数据类型 none string list set zset hash
    del del key[key...] 删除key 返回删除的数量,不存在的key忽略

    Redis的五种数据类型

    数据类型 介绍
    string 能存储任意格式字符串 包括图片 JSON对象等 最大512M
    hash 适合存储对象,类似python dict java Map
    list 有序可重复的list集合
    set 无序不可重复的set集合
    zset sorted set 加了排序功能的set集合

    Redis对string的操作

    操作 介绍
    set key value 向当前数据库添加键值对
    get key 查询key对应的value
    incr/decr key 当key对应的value是数字类型字符串时可用,将value值加/减1
    append key xxx 在key对应的value的基础上追加xxx
    strlen key 返回key对应value字符串的长度
    getrange key start end 对value字符串进行截取
    setrange key offset xxx 从value的offset开始用xxx替换
    mset mset k1 v1 k2 v2 k3 v3...
    mget mget k1 k2 k3 ....

    Redis对hash的操作

    操作 介绍
    hset key field value hset boy name zhansan 创建hash 设置field-value
    hget key filed 找到key对应的hash 去除file对应的value
    hmset key f1 v1 f2 v2 ... 类似mset
    hmget key f1 f2 f3 ... 类似mget
    hgetall key 查询key对应的hash对象的所有field-value
    hdel key 删除key对应的hash
    hkeys key 返回key对应的hash的所有filed
    hvals key 返回key对应的hash的所有value
    hexists key field 判断field是否存在

    Redis对list的操作

    操作 介绍
    lpush key value[value...] 将一个或多个值插入到列表的左边,返回新list长度
    rpush 从右边插入
    lrange key start stop list截取
    llen key 返回list长度
    lindex key index 返回下标为index的list元素
    lrem key count value count=0 删所有与value相等的值,count>0从左开始第一个 count<0从右开始第一个
    lset key index value 实际上是修改下标为index的元素 list长度不变
    linsert key BEFORE/AFTER e value 相对元素e的前后位置插入
    lpop/rpop key 删除左边/右边第一个元素

    Redis对set类型的操作

    操作 介绍
    sadd key e1[e2...] 将一个或多个元素插入到key对应的set集合中
    smembers key 获取key对应集合中的所有元素
    sismember key e 判断e是否存在于key对应的集合,存在返回1
    scard key 返回key对应集合中元素个数
    srem key e1[e2...] 删除集合中一个OR多个元素,不存在的忽略
    srandmember key [count] 随机从集合中取出count个元素 count<0数据可能重复
    spop key [count] 从集合中随机删除count个元素

    Redis对zset的操作

    操作 介绍
    zadd key score1 e1[score2 e2...] 在key对应的zset中添加一个或多个值
    zrange key start stop [withscores] 截取集合 -1表示最后元素 withscores表示返回e和score
    zrem key e1 e2... 删除一个或多个值 不存在的忽略
    zcard key 返回集合元素数量
    zrangebyscore key min max withscores min<=score<=max 截取
    zcount key min max min<=score<=max 数量统计

    Redis 安全设置

    设置密码

    redis.conf 中的requirepass

    requirepass wodemima111

    访问有密码的redis

    1. 连上之后使用auth wodemima111

    2. ./redis-cli -h ip -p port -a wodemima111

    绑定ip

    redis.conf #bind 127.0.0.1

    可以在此设置多个以逗号分隔的允许访问IP

    修改默认端口

    redis.conf port 6379

    Redis事务

    关键字 介绍
    multi 开启事务,接下来的命令会放入事务队列中但不执行
    exec 执行事务队列中的所有命令
    discard 放弃事务,情况事务队列
    watch 监控一个或多个key的值有没有被其他事务修改,被修改会导致事务被放弃
    unwatch 取消对所有key的监视

    事务队列中的命令有语法错误

    事务会被放弃

    事务队列中的命令语法正确但执行出错

    事务正常提交

    watch机制 保证数据的一致性

    相当于mysql中的乐观锁

  • 相关阅读:
    Redis生存时间、删除策略和排序
    Redis事务
    Redis基本类型与常用命令
    script标签块的独立性与共享性
    jQuery UI--jquery-autohide解读
    创建美化的上传文件按钮
    css3彩色进度条
    便签效果
    使用before、after伪类制作三角形
    css3实现进度条的模拟
  • 原文地址:https://www.cnblogs.com/endurance9/p/10325589.html
Copyright © 2020-2023  润新知