Redis常用命令


管理命令

1、启动Redis默认端口号6379redis-server [--port 6379]redis-server redis.conf2、停止redis-cli shutdownkill redis-pid3、测试连通性127.0.0.1:6379> pingPONG4、连接./redis-cli [-h 127.0.0.1 -p 6379]5、认证auth 密码

库操作

1、进入库select 32、获取键总数dbsize3、获取所有键keys *4、清空当前选中的数据库
flushdb5、清空所有数据库flushallkey操作命令
1、查询键是否存在
语法:exists key [key ...]示例:exists zhangsan2、删除键语法:del key [key ...]示例:del zhangsan3、查询键类型语法: type key示例:type zhangsan4、移动键语法:move key db示例:move zhangsan 25、查询key的生命周期(秒)1)秒语法:ttl key2)毫秒语法:pttl key-1:永远不过期。示例:ttl zhangsan6、设置过期时间1)秒语法:expire key seconds2)毫秒语法:pexpire key milliseconds7、设置永不过期语法:persist key8、更改键名称语法:rename key newkey

字符串操作命令

1、存放键值语法:set key value [EX seconds] [PX milliseconds] [NX|XX]示例:set zhangsan 22、获取键值语法:get key示例:get zhangsan3、值递增/递减如果字符串中的值是数字类型的,可以使用incr命令每次递增,不是数字类型则报错。
语法:incr key示例:incr zhangsan4、批量存放键值语法:mset key value [key value ...]示例:mset zhangsan 3 lisi 45、批量获取键值语法:mget key [key ...]示例:mget zhangsan lisi6、获取值长度Redis接收的是UTF-8的编码,如果是中文一个汉字将占3位返回。语法:strlen key示例:strlen zhangsan7、追加内容语法:append key value示例:append zhangsan 6668、获取部分字符语法:getrange key start end示例:getrange zhangsan 0 4

集合操作命令

1、存储值语法:sadd key member [member ...]示例:sadd langs java php c++ go ruby python kotlin java2、获取元素1)获取所有元素语法:smembers key示例:smembers langs
2)随机获取语法:srandmember langs count
示例:srandmember langs 3
3、判断集合是否存在元素
语法:sismember key member示例:sismember langs go4、获取集合元素个数
语法:scard key示例:scard langs5、删除集合元素语法:srem key member [member ...]
示例:srem langs ruby kotlin
6、弹出元素语法:spop key [count]示例:spop langs 2

有序集合

和列表的区别:
  1. 列表使用链表实现,两头快,中间慢。有序集合是散列表和跳跃表实现的,即使读取中间的元素也比较快。
  2. 列表不能调整元素位置,有序集合能。
  3. 有序集合比列表更占内存。
1、存储值语法:zadd key [NX|XX] [CH] [INCR] score member [score member ...]示例:zadd footCounts 16011 tid 20082 huny 2893 nosy2、获取元素分数语法:zscore key member示例:zscore footCounts tid3、获取排名范围排名语法:zrange key start stop [WITHSCORES]1)获取所有,没有分数zrange footCounts 0 -12)获取所有及分数zrange footCounts 0 -1 Withscores4、获取指定分数范围排名语法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]示例:zrangebyscore footCounts 3000 30000 withscores limit 0 15、增加指定元素分数语法:zincrby key increment member示例:zincrby footCounts 2000 tid6、获取集合元素个数语法:zcard key示例:zcard footCounts7、获取指定范围分数个数语法:zcount key min max示例:zcount footCounts 2000 200008、删除指定元素语法:zrem key member [member ...]示例:zrem footCounts huny9、获取元素排名语法:zrank key member示例:zrank footCounts tid

列表操作命令

列表类型是一个有序的字段串列表,内部是使用双向链表实现,所有可以向两端操作元素,获取两端的数据速度快,通过索引到具体的行数比较慢。列表类型的元素是有序且可以重复的。1、存储值1)左端存值语法:lpush key value [value ...]示例:lpush list lily sandy2)右端存值语法:rpush key value [value ...]示例:rpush list tom kitty3)索引存值语法:lset key index value示例:lset list 3 uto2、弹出元素1)左端弹出语法:lpop key示例:lpop list2)右端弹出语法:rpop key示例:rpop list3、获取元素个数语法:llen key示例:llen list4、获取列表元素1)两边获取语法:lrange key start stop示例:lrange users 0 32)获取所有示例:lrange users 0 -13)从右端索引示例:lrange users -3 -15、索引获取1)语法:lindex key index示例:lindex list 22)从右端获取示例:lindex list -56、删除元素1)根据值删除语法:lrem key count value示例:塞入元素 lpush userids 111 222 111 222 222 333 222 2222)count=0 删除所有111示例:lrem userids 0 111 3count > 0 从左端删除前count个222示例:lrem userids 3 2224)count < 0 从右端删除前count个222示例:lrem userids -3 2227、范围删除语法:ltrim key start stop示例:ltrim list 2 4

散列操作命令

1、存放键值1)单个语法:hset key field value示例:hset user name javastack2)多个语法:hmset key field value [field value ...]示例:hmset user name javastack age 20 address china3)不存在时语法:hsetnx key field value示例:hsetnx user tall 1802、获取字段值1)单个语法:hget key field示例:hget user age2)多个语法:hmget key field [field ...]示例:hmget user name age address3、获取所有键与值语法:hgetall key示例:hgetall user4、获取所有字段语法:hkeys key示例:hkeys user5、获取所有值语法:hvals key示例:hvals user6、判断字段是否存在语法:hexists key field示例:hexists user address7、获取字段数量语法:hlen key示例:hlen user8、递增/减语法:hincrby key field increment示例:hincrby user tall -109、删除字段语法:hdel key field [field ...]示例:hdel user age