3-redis命令
3.1-基本命令
3.1.1 ping
坚持和redis的连接是否正常
127.0.0.1:6379> ping
PONG3.1.2-基本读写
基本写:set key value
基本读:get key
127.0.0.1:6379> set name cjj
OK
127.0.0.1:6379> set age 11
OK
127.0.0.1:6379> get name
"cjj"
127.0.0.1:6379> get age
"11"3.1.3-切换数据库
命令:select [数据库id]
127.0.0.1:6379> select 5 #切换到5号数据库
OK
127.0.0.1:6379[5]> get name
(nil)3.1.4-查看数据个数
>dbsize
(integer) 23.2-key操作
3.2.1-keys
命令:keys [正则表达式]
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> keys a*
1) "age"
127.0.0.1:6379> keys n*e
1) "name"
keys 命令非常快,但是在数据量比较大时会阻塞服务,在生产环境中使用 scan 命令代替
3.2.2-存在检测
命令格式:exists key
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists n*
(integer) 0
3.2.3-删除key
命令格式:del [key1 key2 ...],返回删除成功个数
127.0.0.1:6379> del a
(integer) 1
3.2.4-重命名key
命令格式:rename old new
127.0.0.1:6379> keys *
1) "bsdajiknvrieu"
2) "age"
3) "name"
127.0.0.1:6379> rename name new_name
OK
127.0.0.1:6379> keys *
1) "bsdajiknvrieu"
2) "age"
3) "new_name"
3.2.5-移动key
命令格式:move key db_id
127.0.0.1:6379> move name 3 #移动到3号数据库
(integer) 1
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> keys *
1) "name"
3.2.6-类型检测
命令格式:type key
返回:key的数据类型
127.0.0.1:6379[3]> type key
hash
127.0.0.1:6379[3]> type name
string
3.2.7-expire & pexpire
格式:EXPIRE key seconds
功能:为给定 key 设置生存时间。当 key 过期时(生存时间为 0),它会被自动删除。 expire 的时间单位为秒,pexpire 的时间单位为毫秒。在 Redis 中,带有生存时间的 key 被称为“易失的”(volatile)。
说明:生存时间设置成功返回 1。若 key 不存在时返回 0 。rename 操作不会改变 key 的生存时间。
3.2.8-ttl & pttl
- 格式:
TTL key - 功能:time to live,返回给定 key 的剩余生存时间。
- 说明:其返回值存在三种可能:
- 当 key 不存在时,返回 -2 。
- 当 key 存在但没有设置剩余生存时间时,返回 -1 。
- 否则,返回 key 的剩余生存时间。ttl 命令返回的时间单位为秒,而 pttl 命令 返回的时间单位为毫秒。
3.2.9-persist
命令格式:PERSIST key
去除生存时间
3.2.10-randomkey
获得一个随机key,数据库为空时返回nil
3.2.11-scan
命令格式:SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]
迭代数据库,开始于 cursor 匹配 count(默认10) 个类型为 type 且满足模式 pattern 的key
3.3-string操作
3.4-hash操作
3.5-list操作
3.6-set操作
3.7-zset操作
3.8-benchmark性能测试
3.8.1-简介
3.8.2-测试
3.8-bitmap操作
3.9-HyperLogLog操作
3.10-GeoSpatial操作
3.11-发布/订阅
消息系统

生产消费不匹配的问题
- 消费慢生产快:存储系统占满了
- 消费快:所有消息被消费完毕,消息消费者被阻塞
消息发布命令:publish channel value
消息订阅命令:subscribe channel1 channel2 ...
redis事务
事务:
- 执行失败不会引发回滚,即不具备原子性
- 乐观锁实现简单隔离,没有复杂的隔离级别
- 执行结果写道内存,是否持久化由redis来做
redis事务处理命令:
- multi:开启事务
- exec:执行
- discard:取消