redis基础命令和数据操作命令学习笔记

基础命令

  1. 安装成功后,redis的启动命令:先修改配置文件、将服务改成默认运行。然后以配置文件启动服务

     redis-server config/redis-conf
    
  2. 启动完服务以后就可以以端口6379开启

    redis-cli -p 6397
    
  3. 设置值

    set key value #设置值
    
  4. 获得值

    get key #获得key对应value
    
  5. 清空当前数据库

    flushdb
    
  6. 清空所有数据库

    flushall
    
  7. redis默认有16个数据库 0-15

    select (数字) #切换数据库
    dbsize #查看数据库大小
    
  8. 判断key是否存在

    exists #返回0就是不存在,返回1就是存在
    
  9. 移动数据

    move key db #将当前数据库的键值移动到其他数据库
    
  10. 设置过期时间

    expire key seconds #设置过期时间
    ttl key #查看过期时间
    
  11. 查看数据类型

    type key
    

五大数据类型

String

  1. 追加String

    append key "hello" #向key对应的String中追加hello,如果当前字符串不存在,则创建一个。
    
  2. 自增和自减

    incr key #使key的value增加1
    decr key #使key的value减少1
    incrby key 10 #使key的value自增10,可以设置步长,指定增量
    decrby key 10 #使key的value自减10,可以设置步长,指定减量。
    

    可以用来记录文章的浏览记录

  3. 截取字符串

    getrange key start end #截取字符串长度
    getrange key 0 -1 #查看全部字符串。
    
  4. 替换字符串

    setrange key offset value #将指定位置的字符串替换成设置好的。
    
  5. 设置和过期时间同时设置

    #setex(set with expire) #设置过期时间
    setex key 30 "hello" #设置key30秒后过期
    #setnx(set if not exist) #不存在时设置
    setnx key "redis" #当key不存在时设置成功,如果key存在则创建失败。
    
  6. 批量set和get

    # mset 批量设置
    # mget 批量获得
    mset k1 v1 k2 v2 k3 v3
    mget k1 k2 k3
    # msetnx 这个命令是具备原子性的
    msetnx k1 v1 k4 v4  #其中只要k1或k4存在,剩余那个不存在的也无法创建成功,msetnx具备原子性。
    
  7. getset组合命令

    getset key value #如果key不存在,则返回nil并且设置值;如果key存在,先返回值在设置新的值。可以用来更新操作。
    

list

  1. list插入读取命令(所有 list的命令都是由l开头的)

    lpush list one #将一个或多个值插入到list中,插入到头部(左边)
    Rpush list one #将一个或多个值插入到list中,插入到尾部(右边)
    lrange list 0 -1 #获取list的值
    lrange list 0 1 #获取区间的值,从头部开始获取。
    
  2. list移除值

    lpop list #移除list的第一个元素,也就是左边的元素。
    Rpop list #移除list的最后一个元素,也就是右边的元素。
    
  3. list获取值

    lindex list 1 # 通过下标获取list中的值。
    
  4. 获取list的长度

    llen list #返回当前list的长度
    
  5. 移除指定的元素

    lrem list 1 one
    lrem list 2 tow  #移除list中指定个数的value
    
  6. 截取list中的元素

    ltrim list 1 2 #截取指定的元素
    
  7. 组合命令

    rpoplpush #移除最后一个元素并将其加入到另一个列表中
    rpoplpush list1 list2 #将list1最后一个元素移除并将其加入到list2中
    
  8. list更新操作

    lset list 0 new #将list中0下标的值更新成new,如果list不存在或list当前下标没有值,这返回失败。
    
  9. list插入

    linsert #将一个元素插入到指定元素的前面后后面。
    linsert list before/after "word" "other"  #将other插入到word的前面或后面
    
  10. 小技巧

    队(Lpush Rpop)从左边进去,从右边拿出就是一个队列。

    栈(Lpush Lpop)从左边进去,从左边拿出就是一个栈。

Set

  1. Set存值,取值,判断值是否存在

    sadd set "hello" #向set中添加一个值
    smembers set    #查看set中所有的值
    sismember set hello #判断某个值是否在set集合中
    
  2. 获取set集合中的元素个数

    scard set #获取set中的元素的个数
    
  3. 移除set中的元素

    srem set hello #移除set中的元素。
    
  4. 随机抽取元素

    srandmember set #随机抽取一个元素
    srandmember set 2 #随机抽取指定个数的元素
    
  5. 随机删除一个set元素

    spop set #随机删除一个set中元素。
    
  6. 将一个set中的值移动到另一个set中

    smove set set1 "hellp" #将set中的hello移动到set2中。
    
  7. 两个set集合的集合关系

    sdiff set1 set2  #输出set1和set2的差集
    sinter set1 set2  #输出set1和set2的交集
    sunion set1 set2  #输出set1和set2的并集
    

hash

  1. 添加hash的值,获取和删除hash值

    hset hsah key value  #向hash中添加一个键值对
    hget hash key value  #从hash中获取一个键值对
    hmset hash key value key2 value2  #批量添加hash值
    hmget hash key key2 #批量获取hash的值
    hgetall hash #获取全部键值对
    hdel hash key #删除指定hash值
    
  2. 查看hash中键值对个数

    hlen hash #查看hash中键值对的个数
    
  3. 判断hash中某个键值对是否存在

    hexists hash key #判断hash中某个键值对是否存在
    
  4. 获取hash中所有的key或所有的value

    hkeys #获取所有key
    hvals #获取所有value
    

Zset

  1. 添加

    zadd zset 1 one #向zset中添加值
    zadd zset 2 two 3 there  #向zset中添加多个值
    zrange 0 -1 #遍历所有
    
  2. 排序

    zrangebyscore  zset -inf +inf  #按照scores从小到大排序,只显示值
    zrangebyscore  zset -inf +inf withscores  #按照scores从小到大排序,值和score全都显示。
    zrevrange zset 0 -1  #从大到小进行排序
    
  3. 移除

    zrem zset value #移除指点元素
    
  4. 获取zset中的个数

    zcard zset  #获取zset中的元素个数
    
  5. 获取指点区间元素的数量

    zcount zset 1 2 #获取指点区间元素的数量
    

三种特殊类型

geospatial

  1. 添加城市信息

    geoadd china:city shanghai 120.16 30.24 hangzhou #将杭州的坐标添加到geo中。
    
  2. 获取城市坐标

    geopos china:city hangzhou  #获取杭州的坐标。
    
  3. 计算两地的距离

    geodis china:city beijing hangzhou km  #计算北京到杭州的直线距离,最后为单位
    
  4. 以给定的经纬度为圆心,找出某一半径内的元素

    georadius china:city 100 35 1000 km   #以给定的经纬度为圆心,找出某一半径内的元素
    georadius china:city 100 35 1000 km withdist  #以给定的经纬度为圆心,找出某一半径内的元素,并显示中间距离。
    georadius china:city 100 35 1000 km withcoord  #以给定的经纬度为圆心,找出某一半径内的元素,并显示定位信息。
    georadius china:city 100 35 1000 km withcoord count 1 #以给定的经纬度为圆心,找出某一半径内的元素,并显示定位信息,在筛选出指定用户
    
  5. 以给定的城市为圆心,找出某一半径内的元素

    georadius china:city beijing 1000 km   #以北京圆心,找出某一半径内的元素
    
  6. 以hash值返回位置信息

    geohash china:city beijing  #以hash值返回北京信息。
    

geo底层是Zset,可以通过Zset进行操作geo。

Hyperloglog

  1. 命令

    pfadd key 1 2 3 4 5    #创建
    pfcount key  #统计数量
    pfmerge  key3 key ley2  #将key和key2合并成key3,并去掉重复元素
    

Bitmaps

  1. 命令

    setbit key 1 0  #按位添加数据
    getbit key 1    #查看1位置是否为0
    bitcont key    #统计
    

此文章是命令的学习总结,可能会忽视很多命令,也可能会有错误,仅供参考。
事务,Jedis,哨兵模式等后续更新。

redis基础命令和数据操作命令学习笔记相关推荐

  1. 大数据HiveSQL学习笔记三-查询基础语法以及常用函数

    大数据HiveSQL学习笔记三-查询基础语法以及常用函数 一.基础语法 1.SELECT -列名- FROM -表名- WHERE -筛选条件- 如:需要根据城市,性别找出匹配的10个用户 user_ ...

  2. ES6基础3(扩展)-学习笔记

    文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...

  3. 黑马程序员新版Linux零基础快速入门到精通——学习笔记

    01初识Linux 1.1.操作系统概述 1.1.1.硬件和软件 我们所熟知的计算机是由硬件和软件组成的. 硬件: 计算机系统中由电子.机械和光电元件等组成的各种物理装置的总称. ​ (看的见.摸得着 ...

  4. Linux命令篇 linux命令大全简洁明了 linux学习笔记

    Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...

  5. ES6基础5(Promise)-学习笔记

    文章目录 ES6基础5(Promise)-学习笔记 Promise 三个状态 状态转换 手写Promise源码 同步异步概念 jquery中 串行并行 async-await 微任务 宏任务 ES6基 ...

  6. ES6基础4(数据结构)-学习笔记

    文章目录 ES6基础4(数据结构)-学习笔记 set map symbol ES6基础4(数据结构)-学习笔记 set //set 数据结构 类似数组 成员信息唯一性var s = new Set() ...

  7. 大数据业务学习笔记_学习业务成为一名出色的数据科学家

    大数据业务学习笔记 意见 (Opinion) A lot of aspiring Data Scientists think what they need to become a Data Scien ...

  8. python气象数据可视化学习笔记6——利用python地图库cnmaps绘制地图填色图并白化

    文章目录 1. 效果图 2. cnmaps简介及安装 2.1 写在前面 2.2 cnmaps简介和安装 3. 导入库 4. 定义绘图函数 4.1 使用get_adm_maps返回地图边界 4.2 ax ...

  9. React学习:路由定义及传参、数据复用-学习笔记

    文章目录 React学习:路由定义及传参.数据复用-学习笔记 在React中使用react-router-dom路由 简单例子 路由定义及传参 React学习:路由定义及传参.数据复用-学习笔记 在R ...

最新文章

  1. 【Android】Intent介绍及Intent在Activity中的使用方法
  2. 计算机科学学院陈瑜,浙江大学城市学院计算机与计算科学学院 计算机科学与技术 陈则伦...
  3. ViewBag 找不到编译动态表达式所需的一种或多种类型,是否缺少引用?
  4. 一個便宜的高负载网站架构
  5. Memcache监控小工具stats命令
  6. python爬虫接口_python爬虫之百度API调用方法
  7. RabbitMq下载和安装linuxcenteros安装
  8. python植物大战僵尸代码例_python实现植物大战僵尸游戏实例代码
  9. 24小时在线要饭网系统源码 全开源
  10. CAD分图后批量重命名图纸名称
  11. 自动驾驶汽车技术介绍【硬件+软件】
  12. 50--出租车计费器
  13. l/min是什么单位
  14. GitHub---团队合作
  15. U盘文件格式化后怎么快速恢复
  16. java计算机毕业设计问卷调查系统源码+数据库+系统+lw文档+mybatis+运行部署
  17. 初中生关于计算机的科幻作文600字,关于科幻的作文初中集锦5篇
  18. 网站性能优化解决方案
  19. GEE学习笔记1:GEE初识
  20. WebDAV之葫芦儿·派盘+NMM

热门文章

  1. 暴跌中重温周金涛:2018年之后大家能明白我说的话的意义
  2. 同花顺抓起涨做波段指标公式 副图 源码
  3. 基于文心大模型的剧本杀海报生成器(武侠篇)
  4. 小红书负面笔记下沉怎么办
  5. 智慧社区管理系统06(业主列表和功能实现)
  6. 电脑黑屏怎么办?实用解决方法!
  7. 数据分析行业的发展前景怎么样? 未来关于十年数据分析行业的5种预测
  8. NYOJ239 月老的难题 二分图最大匹配(前向星)
  9. 【苹果相册推】Xcode项目,我们将其命名为mypushchat,以及调试的iOS设备
  10. python第一行左对齐_python 左对齐,右对齐