本文首发在我的个人博客:https://jlice.top/p/7pzge/。欢迎大家前去参观,么么哒~
Redis数据类型
字符串
设置值:set key value
获取值:get key
没有相同key时才设置值:set key newval nx
拥有相同key时才设置值:set key newval xx
增加1:incr key
增加x:incrby key x
同时设置多个值:mset key1 value1 key2 value2
同时获取多个值:mget key1 key2
列表
PUSH: lpush
插入新元素到头部;rpush
插入新元素到尾部(一次可以push多个元素) POP: lpop
删除头部元素;rpop
删除尾部元素
查看列表所有元素:lrange key 0 -1
清空列表元素/删除列表:del key
hash表
HMSET命令设置一个多域的hash表:hmset key k1 v1 k2 v2
HGET命令获取指定的单域:hget key k1
HMGET命令获取指定的多域:hmget key k1 k2
HGETALL命令获取指定key的所有信息:hgetall key
可以根据需要对hash表的表项进行单独的操作,如HINCRBY:hincrby key k1 x
无序集合
无序集合不包含重复元素,添加、删除、测试元素存在:O(1)
向无序集合中添加元素:sadd key x1 x2 x3
查看集合元素:smembers key
查看集合是否包含元素x:sismember key x
有序集合
有序集合不包含重复元素,添加、删除、更新元素:O(logN)。有序集合需要元素评分来决定元素次序。
ZADD添加元素: zadd key score value
ZRANGE查看元素:zrange key 0 -1
ZREVRANGE逆序查看元素:zrevrange key 0 -1
使用WITHSCORES参数返回评分:zrange key 0 -1 withscores
Redis系统管理
EXISTS
判断key是否存在 DEL
删除key TYPE
返回key元素的数据类型 KEYS
返回通配符匹配的key列表 RANDOMKEY
随机获得一个已经存在的key CLEAR
清屏 RENAME
改key的名字,新键如果存在将被覆盖 RENAMENX
改key的名字,新建如果存在则更新失败 DBSIZE
返回当前数据库的key的总数
EXPIRE
设置某个key的过期时间(秒),也可以在SET命令中设置过期时间:set key value ex seconds
TTL
查询还有多长时间过期
FLUSHDB
清空当前数据库中的所有键 FLUSHALL
清空所有数据库中的所有键
CONFIG GET
读取配置 CONFIG SET
更改配置 AUTH
使用密码认证 CONFIG RESETSTAT
重置数据统计报告
INFO
查询Redis相关信息
Redis的高级应用
认证方式:
- 登录时
redis-cli -a password
- 登录后
auth password
事务:
- 开始事务:
multi
- 运行事务:
exec
两种持久化方式:
- snapshotting(快照,默认方式):将数据存放到文件
- append-only file(aof):将读写操作存放到文件中
SAVE
将数据写入磁盘