设为首页 收藏本站
查看: 651|回复: 0

[经验分享] Redis常用命令整理

[复制链接]

尚未签到

发表于 2017-12-20 16:39:43 | 显示全部楼层 |阅读模式
doc 环境下使用命令:     keys 命令        ?    匹配一个字符        *    匹配任意个(包括0个)字符        []    匹配括号间的任一个字符,可以使用 "-" 符号表示一个范围,如 a[b-d] 可以匹配 "ab","ac","ad"        \x    匹配字符x,用于转义符号,如果要匹配 "?" 就需要使用 \?     判断一个键值是否存在        exists key        如果存在,返回整数类型 1 ,否则返回 0     删除键        del key [key.....]        可以删除一个或多个键,返回值是删除的键的个数        注意:不支持通配符删除     获得键值的数据类型        type key        返回值可能是 string(字符串类型) hash(散列类型) list(列表类型) set(集合类型) zset(有序集合类型)      赋值与取值        set key value       赋值        get key                取值        递增数字        incr key        当存储的字符串是整数形式时,redis提供了一个使用的命令 incr 作用是让当前的键值递增,并返回递增后的值        incr num        当要操作的键不存在时会默认键值为 0  ,所以第一次递增后的结果是 1 ,当键值不是整数时 redis会提示错误     增加指定的整数        incrby key increment        incrby 命令与 incr 命令基本一样,只不过前者可以通过 increment 参数指定一次增加的数值如:            incrby num 2            incrby num 3     减少指定的整数        decr key        decrby key increment        desc 命令与incr 命令用法相同,只不过是让键值递减        decrby 命令与 incrby命令用法相同     增加指定浮点数        incrbyfloat key increment        incrbyfloat 命令类似 incrby 命令,差别是前者可以递增一个双精度浮点数,如:        incrbyfloat num 2.7        注意: ( 受reids 版本限制,版本需要大于 2.6 版本)      向尾部追加值        append key value        作用是向键值的末尾追加 value ,如果键不存在则将改键的值设置为 value,即相当于 set key value。返回值是追加后字符串的长度        如:append foo " hello word!"     获取字符串长度        strlen key        返回键值的长度,如果键不存在则返回0     同时 获得/设置 多个键值        mget key [key.....]        mset key value [key value .......]     位操作        getbit key offset        setbit key offset value        bitcount key [strart] [end]        bitop operation destkey key [key .....]        一个字节由8个二进制位组成,redis 提供了4个命令直接对二进制位进行操作        getbit 命令可以获得一个字符串类型键指定位置的二进制位的值(0 或 1),索引从 0 开始,如果需要获取的二进制位的索引超出了键值            的二进制位的实际长度则默认位值是 0        setbit 命令可以设置字符串类型键指定位置的二进制位的值,返回值是该位置的旧值,如果需要设置的位置超过了键值的二进制位的长            度,setbit 命令会自动将中间的二进制位设置为0,同理设置一个不存在的键的指定二进制位的值会自动将其前面的位赋值为 0        bitcount 命令可以获得字符串类型键中值是1的二进制位个数,可以通过参数来限制统计的字节范围,如我们希望统计前两个字节(即             "aa")  命令:bitcount foo 0 1    注意: ( 受reids 版本限制,版本需要大于 2.6 版本)         bittop 命令可以对多个字符串类型键进行位运算,并将结果存储在destkey参数指定的键中。该命令支持的运算操作有 AND、 OR、              XOR、 NOT,            如我们对bar 和 aar 进行 OR 运算操作:             set foo1 bar            set foo2 aar            bitop OR res foo1 foo2            get res            注: ( 受reids 版本限制,版本需要大于 2.6 版本)                     散列类型          赋值与取值        hset key field value        hget key field        hmset key field value [ field value ...... ]        hmget key field [ field ...... ]        hgetall key        hset 命令用来给字段赋值,而hget命令用来获得字段的值        hset 命令的方便之处在于不区分插入和更新操作,这意味着修改数据时不用事先判断字段是否存在来决定要执行的是插入操作还是更新操            作,当执行的是插入操作时, hset 命令返回 1 ,当执行的是更新操作时,hset 命令返回的是 0 ,当键本身不存在时, hset 命令还会            自动建立他        hmset 设置多个键值        hmget 获得多个键值        hgetall 获取键中所有字段和字段值却不知道键中有哪些字段时使用,返回的结果是字段和字段值组成的列表     判断字段是否存在        hexists key field        存在返回 1 ,否则返回 0        当字段不存在时赋值        hsetnx key field value        hsetnx 命令与hset 命令类似,区别在于如果字段已经存在,hsetnx 命令将不执行任何操作            增加数字        hincrby key field increment        使字段值增加指定的整数     删除字段        hdel key field [ field .....]        删除一个或多个字段,返回值是被删除的字段个数     只获取字段名或字段值        hkeys key        hvals key        hkeys 获取所有字段的名字        hvals 获得键中所有字段的值     获得字段数量        hlen key  列表类型        向列表两端增加元素        lpush key value [ value ....... ]        rpush key value [ value ....... ]        lpush 命令用来向列表左边增加元素,返回表示增加元素后列表的长度         rpush 命令用来向列表右边增加元素,返回表示增加元素后列表的长度             从列表两端弹出元素        lpop key        rpop key        lpop 命令可以从列表左边弹出一个元素,lpop 命令执行两步操作,1:将列表左边的元素从列表中移除,2:返回被移除元素值        rpop 命令可以从列表右边弹出一个元素     获取列表中元素个数        llen key        当键不存在时,llen 返回 0     获得列表片段        lrange key start stop        获得列表中的某一片段,返回索引从 start 到 stop 之间的所有元素(包括两端的元素) 索引开始为 0        注:lrange 与很多语言中用来截取数组片段的方法有一点区别是 lrange 返回的值包含最右边的元素               lrange 命令也支持负索引,表是从右边开始计算序数,如 ' -1 ' 表示最右边第一个元素, ' -2 ' 表示最右边第二个元素,一次类推     删除列表中指定的值        lrem key count value        lrem 命令会删除列表中前 count 个值为 value 的元素,返回值是实际删除的元素个数。根据count 值的不同,lrem 命令执行的方式会            略有差异            当 count > 0 时,lrem 命令会从列表左边开始删除前 count 个值为 value 的元素            当 count < 0 时,lrem 命令会从列表右边开始删除前count 个值为 value 的元素            当 count = 0 时,lrem 命令会删除所有值为value的元素     获得 / 设置 指定索引的元素值        lindex key index        lset key index value        lindex 命令用来返回指定索引的元素,索引从 0 开始 ,如果 index 是负数则表示从右边开始计算的索引,最右边元素的索引是 -1         lset 是通过索引操作列表的命令,它会将索引为 index 的元素赋值为 value      只保留列表指定片段        ltrim key start end        ltrim 命令可以删除指定索引范围之外的所有元素,其指定列表范围的方法和 lrange 命令相同        ltrim 命令常和 lpush 命令一起使用来限制列表中元素的数量,比如记录日志时我们希望只保留最近的 100 条日志,则每次加入新元素时            调用一次ltrim 命令即可;     向列表中插入元素        linsert key before | after pivot value        linsert 命令首先会在列表中从左到右查找值为 pivot 的元素,然后根据第二个参数是 before 还是 after 来决定将 value 插入到该元素的            前面还是后面,如果命令执行成功,返回插入操作完成之后列表的长度。如果没有找到 pivot 返回 -1 如果key 不存在或为空,返回 0                将元素从一个列表转到另一个列表R        rpoplpush source destination        rpoplpush 先执行 rpop 命令在执行 lpush 命令。rpoplpush 命令先会从source 列表类型键的右边弹出一个元素,然后将其加入到 destination 列表类型键的左边,并返回这个元素的值,整个过程是原子的   集合类型    增加删除命令        sadd key member [ member .... ]        srem key member [ member .... ]        sadd 命令用来向集合中增加一个或多个元素,如果键不存在则会自动创建。因为在一个集合中不能有相同的元素,所以如果要加入的元            素已经存在与集合中就会忽略这个元素。返回值是成功加入的元素数量(忽略的元素不计算在内)        srem 命令用来从集合中删除一个或多个元素,并返回删除成功的个数     获得集合中的所有元素        smembers key        返回集合中的所有元素     判断元素是否在集合中        sismember key member        判断一个元素是否在集合中是一个时间复杂度为 0(1) 的操作,无论集合中有多少个元素, sismember 命令始终可以极快的返回结果。当            值存在时 sismember 命令返回 1 ,当值不存在或者键不存在时返回 0     集合间运算        sdiff key [ key ...... ]        sdiff 命令用来对多个集合执行差集运算。集合 A 与集合 B 的差集表示为 A- B ,代表所有属于 A 且不属于 B 的元素构成的集合,即             A - B = { x| x∈A  且 x ∈/B }             DSC0000.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-426117-1-1.html 上篇帖子: Java连接远程Redis 下篇帖子: spring boot整合redis
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表