zoukankan      html  css  js  c++  java
  • Redis命令

    Redis的数据类型

    redis存储的是:key、value格式的数据,其中key都是字符串,可以把Redis看成一个非常大的Map<String,Object>键值对集合。value有5种不同的数据结构:

    1、字符串类型string:类似于java中的Map<String,String>
    2、哈希类型hash:map格式 。类似于java中的Map<String,Map<Object,Object>>
    3、列表类型 list:linkedlist格式。支持重复元素,类似于java中的Map<String,List<Object>>
    4、集合类型set:不允许重复元素,类似于java中的Map<String,Set<Object,Object>>
    5、有序集合类型zset(sorted set:有序集合):不允许重复元素,且元素有顺序,类似于java中的Map<String,Set<Object,Object>>,但Set集合有序。

    Redis的基本命令

    Redis的命令学习网站:

    http://www.redis.net.cn/order/

    http://redisdoc.com/

    常用命令

    keys * 获取所有的key
    select 0 选择第一个库
    move myString 1 将当前的数据库key移动到某个数据库,目标库有,则不能移动
    flushdb 清除指定库
    randomkey  从当前数据库中随机返回一个key
    type key 查看key的类型
    del key1 删除key1
    exists key 判断是否存在key
    expire key 10 设置key 10秒过期
    pexpire key 1000 设置key 1000毫秒过期
    persist key 删除过期时间
    ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
    

    string

    set key value #存储
    get key		# 通过key获取value
    del key #删除key
    getrange name 0 -1 # 字符串分段   0 -1是全部   0 -2 表示 n-1
    getset name new_cxx #设置新值,返回旧值
    mset key1 key2 #批量设置
    mget key1 key2 #批量获取
    setnx key value #不存在就插入(not exists)
    setrange key index value #从index开始替换value
    incr age #递增
    incrby age 10 #递增,步长为10
    decr age #递减
    decrby age 10 #递减,步长为10
    incrbyfloat #增减浮点数
    append #追加
    strlen #显示字符串的长度
    
    object encoding key  # 得到key 的类型  string里面有三种编码
        int  #用于64位有符号整数表示的字符串
        embstr #用于长度小于或等于44字节  Redis3.x中是39字节,这种类型的编码在内存使用时性能更好
        raw  #用于长度大于44字节的
    

    hash

    #为哈希表中的字段赋值
    #	如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作
    #	如果字段已经存在于哈希表中,旧值将被覆盖。
    hset key field value	#hset myhash name zhangsan
    
    hget myhash name #获取
    # 添加多个值 key value形式
    hmset myhash name zhangsan age 25 note "i am notes"
    # 获取多个值,通过多个key
    hmget myhash name age note   
    hgetall myhash #获取所有的
    hexists myhash name #是否存在
    hsetnx myhash score 100 #如果不存在就设置值
    hincrby myhash id 1 #递增
    hdel myhash name #删除
    hkeys myhash #只取key
    hvals myhash #只取value
    hlen myhash #长度
    

    list

    # 添加:可以添加一个元素到列表的头部(左边)或者尾部(右边)
    lpush key value: 将元素加入列表左边	
    rpush key value:将元素加入列表右边
    #lpush mylist a b c 左插入
    #rpush mylist x y z 右插入
    
    lrange key start end # 范围获取 0 -1 取出数据集合,0 -1是取出所有,0 1取第第一个和第二个
    lpop mylist #弹出集合最后一个元素,即删除列表最左边的元素,并将元素返回
    rpop mylist #弹出第一个元素,即删除列表最右边的元素,并将元素返回
    llen mylist #长度
    
    lrem mylist count value #删除
        COUNT 的值可以是以下几种:
        count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
        count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
        count = 0 : 移除表中所有与 VALUE 相等的值。
    
    lindex mylist 2 #指定索引的值
    lset mylist 2 n #索引设值
    
    #对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
    #下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 
    #也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
    ltrim mylist 0 4
    
    #在列表的元素前或者后插入元素
    #	当指定元素不存在于列表中时,不执行任何操作。 
    #	当列表不存在时,被视为空列表,不执行任何操作。
    #	如果 key 不是列表类型,返回一个错误。
    linsert mylist before a #a之前插入
    linsert mylist after a #a之后插入
    
    #移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
    rpoplpush list list2 #转移列表的数据
    

    set

    sadd key value #存储
    smembers myset #获取myset集合中所有元素
    srem myset set1 #删除myset集合中的set1元素	
    sismember myset set1 #判断元素是否在集合中
    scard key_name #个数
    sdiff | sinter | sunion key1 key2 #集合间运算:差集 | 交集 | 并集
    srandmember #随机获取集合中的元素
    spop #从集合中弹出一个元素
    

    zset

    有序集合类型 sortedset:不允许重复元素,且元素有顺序,每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    #存储
    zadd key score value
    zadd zset 1 one
    zadd zset 2 two
    zadd zset 3 three
    
    zincrby zset 1 one #将元素为one的分数增长1
    #获取
    zrange key start end [withscores] #zrange myzset 0 -1 withscores
    
    zscore zset two 获取分数
    zrange zset 0 -1 withscores #范围值
    zrangebyscore zset 10 25 withscores #指定范围的值
    zrangebyscore zset 10 25 withscores limit 1 2 #分页
    Zrevrangebyscore zset 10 25 withscores #指定范围的值
    zcard zset #元素数量
    Zcount zset #获得指定分数范围内的元素个数
    Zrem zset one two #删除一个或多个元素
    Zremrangebyrank zset 0 1 #按照排名范围删除元素
    Zremrangebyscore zset 0 1 #按照分数范围删除元素
    Zrank zset 0 -1 #分数最小的元素排名为0
    Zrevrank zset 0 -1 #分数最大的元素排名为0
    Zinterstore #计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
    zunionstore #计算给定的一个或多个有序集的并集,并存储在新的 key 中
    
    coydone的博客
  • 相关阅读:
    申通服务恶劣,开始忘本
    基础知识学习外部排序
    ToString()格式和用法大全
    Web.Config Transformation ASP.NET 4.0 新特性
    拒绝try.catch泛滥,学习委托有感
    Oracle Job定时任务的使用详解
    数据库和索引设计简要笔记
    Redis实际应用场景
    线程如何按照自己指定的顺序执行
    WCF 4.0 进阶系列 随笔汇总
  • 原文地址:https://www.cnblogs.com/coydone/p/13920704.html
Copyright © 2011-2022 走看看