管理命令
1、启动
Redis默认端口号6379
redis-server [--port 6379]
redis-server redis.conf
2、停止
redis-cli shutdown
kill redis-pid
3、测试连通性
127.0.0.1:6379> ping
PONG
4、连接
./redis-cli [-h 127.0.0.1 -p 6379]
5、认证
auth 密码
库操作
1、进入库
select 3
2、获取键总数
dbsize
3、获取所有键
keys *
4、清空当前选中的数据库
flushdb
5、清空所有数据库
flushall
key操作命令
1、查询键是否存在
语法:exists key [key ...]
示例:exists zhangsan
2、删除键
语法:del key [key ...]
示例:del zhangsan
3、查询键类型
语法: type key
示例:type zhangsan
4、移动键
语法:move key db
示例:move zhangsan 2
5、查询key的生命周期(秒)
1)秒语法:ttl key
2)毫秒语法:pttl key
-1:永远不过期。
示例:ttl zhangsan
6、设置过期时间
1)秒语法:expire key seconds
2)毫秒语法:pexpire key milliseconds
7、设置永不过期
语法:persist key
8、更改键名称
语法:rename key newkey
字符串操作命令
1、存放键值
语法:set key value [EX seconds] [PX milliseconds] [NX|XX]
示例:set zhangsan 2
2、获取键值
语法:get key
示例:get zhangsan
3、值递增/递减
如果字符串中的值是数字类型的,可以使用incr命令每次递增,不是数字类型则报错。
语法:incr key
示例:incr zhangsan
4、批量存放键值
语法:mset key value [key value ...]
示例:mset zhangsan 3 lisi 4
5、批量获取键值
语法:mget key [key ...]
示例:mget zhangsan lisi
6、获取值长度
Redis接收的是UTF-8的编码,如果是中文一个汉字将占3位返回。
语法:strlen key
示例:strlen zhangsan
7、追加内容
语法:append key value
示例:append zhangsan 666
8、获取部分字符
语法:getrange key start end
示例:getrange zhangsan 0 4
集合操作命令
1、存储值
语法:sadd key member [member ...]
示例:sadd langs java php c++ go ruby python kotlin java
2、获取元素
1)获取所有元素
语法:smembers key
示例:smembers langs
2)随机获取
语法:srandmember langs count
示例:srandmember langs 3
3、判断集合是否存在元素
语法:sismember key member
示例:sismember langs go
4、获取集合元素个数
语法:scard key
示例:scard langs
5、删除集合元素
语法:srem key member [member ...]
示例:srem langs ruby kotlin
6、弹出元素
语法:spop key [count]
示例:spop langs 2
有序集合
和列表的区别:
- 列表使用链表实现,两头快,中间慢。有序集合是散列表和跳跃表实现的,即使读取中间的元素也比较快。
- 列表不能调整元素位置,有序集合能。
- 有序集合比列表更占内存。
1、存储值
语法:zadd key [NX|XX] [CH] [INCR] score member [score member ...]
示例:zadd footCounts 16011 tid 20082 huny 2893 nosy
2、获取元素分数
语法:zscore key member
示例:zscore footCounts tid
3、获取排名范围排名
语法:zrange key start stop [WITHSCORES]
1)获取所有,没有分数
zrange footCounts 0 -1
2)获取所有及分数
zrange footCounts 0 -1 Withscores
4、获取指定分数范围排名
语法:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
示例:zrangebyscore footCounts 3000 30000 withscores limit 0 1
5、增加指定元素分数
语法:zincrby key increment member
示例:zincrby footCounts 2000 tid
6、获取集合元素个数
语法:zcard key
示例:zcard footCounts
7、获取指定范围分数个数
语法:zcount key min max
示例:zcount footCounts 2000 20000
8、删除指定元素
语法:zrem key member [member ...]
示例:zrem footCounts huny
9、获取元素排名
语法:zrank key member
示例:zrank footCounts tid
列表操作命令
列表类型是一个有序的字段串列表,内部是使用双向链表实现,所有可以向两端操作元素,获取两端的数据速度快,通过索引到具体的行数比较慢。
列表类型的元素是有序且可以重复的。
1、存储值
1)左端存值
语法:lpush key value [value ...]
示例:lpush list lily sandy
2)右端存值
语法:rpush key value [value ...]
示例:rpush list tom kitty
3)索引存值
语法:lset key index value
示例:lset list 3 uto
2、弹出元素
1)左端弹出
语法:lpop key
示例:lpop list
2)右端弹出
语法:rpop key
示例:rpop list
3、获取元素个数
语法:llen key
示例:llen list
4、获取列表元素
1)两边获取
语法:lrange key start stop
示例:lrange users 0 3
2)获取所有
示例:lrange users 0 -1
3)从右端索引
示例:lrange users -3 -1
5、索引获取
1)语法:lindex key index
示例:lindex list 2
2)从右端获取
示例:lindex list -5
6、删除元素
1)根据值删除
语法:lrem key count value
示例:塞入元素 lpush userids 111 222 111 222 222 333 222 222
2)count=0 删除所有111
示例:lrem userids 0 111
3)count > 0 从左端删除前count个222
示例:lrem userids 3 222
4)count < 0 从右端删除前count个222
示例:lrem userids -3 222
7、范围删除
语法:ltrim key start stop
示例:ltrim list 2 4
散列操作命令
1、存放键值
1)单个
语法:hset key field value
示例:hset user name javastack
2)多个
语法:hmset key field value [field value ...]
示例:hmset user name javastack age 20 address china
3)不存在时
语法:hsetnx key field value
示例:hsetnx user tall 180
2、获取字段值
1)单个
语法:hget key field
示例:hget user age
2)多个
语法:hmget key field [field ...]
示例:hmget user name age address
3、获取所有键与值
语法:hgetall key
示例:hgetall user
4、获取所有字段
语法:hkeys key
示例:hkeys user
5、获取所有值
语法:hvals key
示例:hvals user
6、判断字段是否存在
语法:hexists key field
示例:hexists user address
7、获取字段数量
语法:hlen key
示例:hlen user
8、递增/减
语法:hincrby key field increment
示例:hincrby user tall -10
9、删除字段
语法:hdel key field [field ...]
示例:hdel user age