Redis入门,看这一篇就够了( 二 )
获取键总数语法:dbsize
127.0.0.1:6379> dbsize(integer) 6
获取键总数时不会遍历所有的键 , 直接获取内部变量 , 时间复杂度O(1) 。
查询键是否存在语法:exists key [key …]
127.0.0.1:6379> exists javastack java(integer) 2
查询查询多个 , 返回存在的个数 。
删除键语法:del key [key …]
127.0.0.1:6379> del java javastack(integer) 1
可以删除多个 , 返回删除成功的个数 。
查询键类型语法: type key
127.0.0.1:6379> type javastackstring
移动键语法:move key db
如把javastack移到2号数据库 。
127.0.0.1:6379> move javastack 2(integer) 1127.0.0.1:6379> select 2OK127.0.0.1:6379[2]> keys *1) "javastack"
查询key的生命周期(秒)秒语法:ttl key毫秒语法:pttl key
127.0.0.1:6379[2]> ttl javastack(integer) -1
-1:永远不过期 。
设置过期时间秒语法:expire key seconds毫秒语法:pexpire key milliseconds
127.0.0.1:6379[2]> expire javastack 60(integer) 1127.0.0.1:6379[2]> ttl javastack(integer) 55
设置永不过期语法:persist key
127.0.0.1:6379[2]> persist javastack(integer) 1
更改键名称语法:rename key newkey
127.0.0.1:6379[2]> rename javastack javastack123OK
字符串操作命令字符串是Redis中最基本的数据类型 , 单个数据能存储的最大空间是512M 。
存放键值语法:set key value [EX seconds] [PX milliseconds] [NX|XX]
nx:如果key不存在则建立 , xx:如果key存在则修改其值 , 也可以直接使用setnx/setex命令 。
127.0.0.1:6379> set javastack 666OK
获取键值语法:get key
127.0.0.1:6379[2]> get javastack"666"
值递增/递减如果字符串中的值是数字类型的 , 可以使用incr命令每次递增 , 不是数字类型则报错 。
【Redis入门,看这一篇就够了】语法:incr key
127.0.0.1:6379[2]> incr javastack(integer) 667
一次想递增N用incrby命令 , 如果是浮点型数据可以用incrbyfloat命令递增 。
同样 , 递减使用decr、decrby命令 。
批量存放键值语法:mset key value [key value …]
127.0.0.1:6379[2]> mset java1 1 java2 2 java3 3OK
获取获取键值语法:mget key [key …]
127.0.0.1:6379[2]> mget java1 java21) "1"2) "2"
Redis接收的是UTF-8的编码 , 如果是中文一个汉字将占3位返回 。
获取值长度语法:strlen key127.0.0.1:6379[2]> strlen javastack(integer) 3
追加内容语法:append key value
127.0.0.1:6379[2]> append javastack hi(integer) 5
向键值尾部添加 , 如上命令执行后由666变成666hi
获取部分字符语法:getrange key start end
> 127.0.0.1:6379[2]> getrange javastack 0 4"javas"
集合操作命令集合类型和列表类型相似 , 只不过是集合是无序且不可重复的 。
集合存储值语法:sadd key member [member …]
// 这里有8个值(2个java) , 只存了7个127.0.0.1:6379> sadd langs java php c++ go ruby python kotlin java(integer) 7
获取元素获取所有元素语法:smembers key
127.0.0.1:6379> smembers langs1) "php"2) "kotlin"3) "c++"4) "go"5) "ruby"6) "python"7) "java"
随机获取语法:srandmember langs count
127.0.0.1:6379> srandmember langs 31) "c++"2) "java"3) "php"
判断集合是否存在元素语法:sismember key member
127.0.0.1:6379> sismember langs go(integer) 1
获取集合元素个数语法:scard key
127.0.0.1:6379> scard langs(integer) 7
删除集合元素语法:srem key member [member …]
127.0.0.1:6379> srem langs ruby kotlin(integer) 2
弹出元素语法:spop key [count]
127.0.0.1:6379> spop langs 21) "go"2) "java"
有序集合和列表的区别:
1、列表使用链表实现 , 两头快 , 中间慢 。 有序集合是散列表和跳跃表实现的 , 即使读取中间的元素也比较快 。
2、列表不能调整元素位置 , 有序集合能 。
3、有序集合比列表更占内存 。
存储值语法:zadd key [NX|XX] [CH] [INCR] score member [score member …]
127.0.0.1:6379> zadd footCounts 16011 tid 20082 huny 2893 nosy(integer) 3
获取元素分数语法:zscore key member
127.0.0.1:6379> zscore footCounts tid"16011"
获取排名范围排名语法:zrange key start stop [WITHSCORES]
// 获取所有 , 没有分数127.0.0.1:6379> zrange footCounts 0 -11) "nosy"2) "tid"3) "huny"// 获取所有及分数127.0.0.1:6379> zrange footCounts 0 -1 Withscores1) "nosy"2) "2893"3) "tid"4) "16011"5) "huny"6) "20082"
获取指定分数范围排名语法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
- 抖音|抖音有多难做,看看这个表,这些领域你踩坑了吗?
- 小屏|手小怎么办?来看看这几款小屏旗舰,小屏≠减配
- AMD|AMD终于要推新入门级处理器了,看到具体信息,真为其捏一把汗
- 淘宝|微信大更新!最烦人的限制没了,还能直接看这种视频
- 数据库|Jedis操作Redis数据库(八)
- 军情六处|新手入门学PLC,搞懂这几种接线方式,再也不用求别人
- 方法论|最实用的中台入门介绍(三)模型篇
- 小米科技|小米12全曝光,看这篇就够了!
- 红米手机|12+256GB、骁龙870手机降至1999,极致性价比还得看这款“神机”
- 团购|今年值得买的手机,就看这5部,有的能省去买微单的钱