Redis-基础知识(包含基础命令)

一,单进程

  1. redis使用单进程模型来处理客户端的请求,通过epoll函数的包装来得到,Redis的实际处理速度完全依靠主进程的执行效率
  2. Epoll是Linux内核为处理大批量文件描述符而做了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。

二,redis默认16个数据库,从0开始,初始默认使用0号库

  1. 切换数据库:select 6 即切换第6号库

三,默认端口:6379

四,Redis的五大数据类型

  1. 字符串(最基本类型)
    • string是redis最基本类型,可以包含任何数据,比如JPG图片或者序列化的对象;
    • 单个redis字符串value最多可以是512M
  2. 列表:底层是链表
  3. 集合:底层是一个无序的哈希散列表
  4. 哈希:是键值对集合,适用于存储对象
  5. 有序集合Zset
    • 每个元素都会关联一个double类型的分数,redis通过分数为集合中的成员从小到大排序,元素只能唯一,但分数可以重复。

五,三大特点

  1. 支持数据持久化
    • 将内存中的数据保持在磁盘中,重启时可以再次加载进行使用
  2. 支持多种数据类型进行存储
  3. 支持数据备份
    • master-slave模式的数据备份

六,作用

  1. 内存存储和持久化
  2. 取最新N个数据的操作,如:可以将最新的10条评论的id放在Redis的List集合里面
  3. 模拟类似于HttpSession这种需要设定过期时间的功能
  4. 发布,订阅消息系统
  5. 定时器,计数器

七,redis基础命令

  1. 常用命令大全:http://redisdoc.com/
  2. 启动:redis-server /myredis/redis.conf
  3. 连接redis:redis-cli -p 6379
  4. 设置和查看数据:set k1 hello ,get k1 如果设置相同的key 则覆盖之前的
  5. 退出:SHUTDOWN
  6. 切换数据库:select eg:select 7 查看第8个库
  7. 查看当前数据库key的数量:dbsize
  8. 清空当前库:flushdb
  9. 清空所有16个数据库:flushall
    10.config get dir 查看redis启动路径即可找到启动的日志
  10. key的常用命令
    • keys * 查看所有key
    • get key的名字 查看某个key的值
    • keys k? 类似数据库模糊查询---->k1,k2,k3
    • exit key的名字,判断某个key是否存在
    • move k3 2 将k3移到2号库
    • expire key秒钟 给某个key设置过期时间
    • ttl key 查看还有多少秒过期,-1永不过期,-2表示已经过期
    • type key 查看key是什么类型
  11. 字符串的常用命令
    • set/del/append/get/strlen key的名字
    • incr/decr key的名字 数字的加减点一次加或者减一
    • incrby/decrby key的名字 ”数字“ 某个键每次由”数字“来加减
    • getrange key的名 0 3 通过下标做范围查看范围内的值,获取指定区间范围内的值,类似between…and (从0到-1表示全部)
    • setrange key的名字 索引 新值 给具体索引位置设置新值 eg:从下标为0的位置开始设置:setrange k1 0 xxx —>xxxfs32131
    • setex(set with expire)key的名字 秒值 值 给键设置过期时间
    • setnx(set if not exit)即:setnx k1 newvalue:如果key1不存在才添加新值
    • mset/mget/msetnx k1 v1 k2 v2 批量创建,查找键和值
    • 注意:msetnx 批量设置键值 有的键已经存在则命令执行失败
  12. 列表常用命令
    • lpush/rpush key的名字 v1 v2 v3 eg:lpush mylist v1 v2 v3
      • lpush是栈,rpush是队列
    • lrange key的名字 区间 查看区间范围内的值 eg:LRANGE mylist 0 -1
    • lpop key的名字 删除栈顶元素 rpop key的名字 删除栈低元素
    • index key的名字 索引 根据索引取key中的值
    • llen key的名字 查看key的长度
    • lrem key 删除的个数 删除的元素 删除n个 指定相同的元素
    • ltrim key 下标(比如0 3)截取0到3的数值重新赋值给key
    • rpoplpush key1 key2 将key1 栈低元素移动到key2的栈顶
    • lset key的名 index value 将列表中指定下标位置设置新值
    • linsert key的名 before/after 指定值 新值 将新值插入到指定值的前后
  13. Set常用命令
    • sadd key的名字 多个值 添加
    • smembers key的名字 查看某个key的所有值
    • sismember key的名字 某个值 查看某个值是否在这个key里,在就返回1 不在就返回0
    • scard key的名字 获取集合中元素的个数
    • srem key的名字 value 删除key中的某个值
    • srandmember key的名字 任意整数 从key中随机抽出任意整数个元素
    • spop key的名字 随机删除一个元素
    • smove key1 key2 key1中的某个值 将key1的某个值移到key2中
    • 交并补集命令
      • 交集:sinter set01 set02 查出两个集合的交集
      • 并集:sunion set01 set02 查出两个集合的并集
      • 差集:sdiff set01 set02 显示set01里set02没有的元素
  14. 哈希常用命令
    • 注意:哈希的KV模式不变,但V是一个键值对相当于{key1:{value:1111}}
    • hset 创建哈希值:hset user id 11
    • hget 获取数值:hget user id
    • hmset 批量创建value值:hmset student id 11 name zs age 32
    • hmget 批量获取value值:hmget student id name age
    • hgetall 哈希里获取所有值:hmget student
    • hdel 删除元素:hdel student age
    • hlen 查看值的个数:hlen student
    • hexists key 某个值 查看某个值是否在key里:hexits student id
    • hkeys/hvals 查看哈希里value有哪些键/值:hkeys student/hvals student
    • hincrby student age 2 指定int由2递增
    • hincrbyfloat student score 0.5 学生的分数由0.5浮点数递增
    • hsetnx 添加没有的值:hsetnx student email asds@qq.com
  15. 有序集合常用命令
    • zadd key1 score(分数) :zset01 50 v1 60 v2 20 v3
    • zrange key 查看的下标区间 (withscores会携带分数) 查看规定区间的元素:zrange zset01 0 -1 withscores
    • zrangebyscore key 开始分数 结束分数 根据分数区间显示对应的值:zrangebyscore zset01 50 90
      • 如果有(则表示不包含
      • limit 截取:zrangebyscore zset01 60 90 limit 2 2 意思是从第2个往后截取两个也就是取第4,5,个
    • zrem key score对应的value 删除元素:zrem zset01 v5
    • zcard key ???
    • zcount key 分数区间 分数区间的元素个数:zcount zset01 50 90
    • zrank key value值 获取值的下标位置:zrank zset01 v4 就会返回下标位置
    • zrevrank key 下标区间0 -1 显示元素倒序排
    • zrevrangebyscore zset01 90(结束分数) 60(开始分数) 查询分数区间翻转了
      17 命令的时间复杂度
    • 在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值