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

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,哨兵模式等后续更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值