参考网址: https://redis.io/commands
Redis是单线程的,所有数据放在内存中。它的性能瓶颈不是CPU,而是内存和带宽
数据库命令
Redis 默认有16个数据库,默认使用第0个。可以使用select切换数据库
// 切换数据库
select 3
// 查看当前数据库的大小
dbsize
// 清空当前数据库
flushdb
// 清空所有数据库
flushall
String字符串类型命令
// 设置 key-val键值对
set key value
// 获取key的值
get key
// 显示所有的key值
keys *
// 判断key是否存在
exists key
// 移除当前的key
move key 1
// 设置key的过期时间
expire key seconds
// 查看key的过期时间
ttl key
// 查看key的数据类型
type key
// 在value后面追加 hello
append key "hello"
// 获取value的字符串长度
strlen key
// 值 +1
incr key
// 值 -1
decr key
// 值 +step
incrby key step
// 值 -step
decrby key step
// 截取字符串,start-end
getrange key start end
// 获取所有的字符串
getrange key start -1
// 替换指定位置的字符串
setrange key offset str
List 列表类型命令(命令都是l开头)
// 列表中增加元素(从左边)
lpush list item1 item2 item3
// 列表中增加元素(从右边)
rpush list aaa
// 列表所有元素
lrange list 0 -1
// 移除列表中一个元素(从左边)
lpop list
// 移除列表中一个元素(从右边)
rpop list
// 移除列表中n个元素
lrem list 2 aaa
// 获取列表的第n个元素
lindex list 1
// 获取列表的长度
llen list
// 更新列表中某个下标的值
lset list index value
Set 集合类型命令(命令都是s开头)
set中的值是无序,不能重复的
// 向集合中添加元素
sadd myset aaa bbb ccc
// 获取集合中的所有元素
smembers myset
// 判断一个元素是否在集合中
sismember myset aaa
// 集合的个数
scard myset
// 移除集合中的某个元素
srem myset aaa
// 随机返回集合中的一个元素
srandmember myset
// 随机删除一个元素
spop myset
// 将一个元素从一个集合移动到另一个集合
smove set1 set2 item
// 集合的差集
sdiff set1 set2
// 集合的交集
sinter set1 set2
// 集合的并集
sunion set1 set2
Hash 哈希类型命令(命令都是h开头)
Map集合:key-map,更适合对象的存储
// 设置值
hset myhash key1 value1 key2 value2
// 获取值
hget myhash key1
hgetall myhash
// 删除指定的key,对应的value也自动删除
hdel myhash key1
// 获取hash的字段数量
hlen myhash
// 判断hash中是否存在key
hexists myhash key
// 获取所有的key
hkeys myhash
// 获取所有的value
hvals myhash
Zset 有序集合类型命令(命令都是z开头)
在set的基础上增加了一个值,用来排序:zset key score1 value1
// 向集合中添加元素
zadd myset score1 value1 score2 value2
// 获取集合中的所有元素(从小到大)
zrange myset 0 -1
// 获取集合中的所有元素(从大到小)
zrevrange myset 0 -1
// 显示所有的值
zrangebyscore myset -inf +inf withscores
// 分页显示(offset=0, count=3)
zrangebyscore myset -inf +inf withscores limit 0 3
// 移除指定的元素
zrem myset key
// 获取有序集合中的个数
zcard myset
Geospatial 地理空间类型命令(命令都是geo开头)
Geospatial 底层其实就是 Zset
// 添加地理位置
geoadd key lon lat name
geoadd china:city 116.40 39.90 beijing
// 获取指定key的经纬度
geopos key name
geopos china:city beijing
// 计算两个位置的直线距离
geodist key name1 name2 km
geodist china:city beijing shanghai km
// 查找以 lon,lat 为圆心,radius为半径内的数据(可以指定返回的数据个数)
georadius china:city lon lat radius km withcoord withdist count num
georadius china:city 118 35 800 km withcoord withdist count 1
// 查找以 name 为圆心,radius为半径内的数据
georadiusbymember key name radius km withdist
georadiusbymember china:city beijing 1500 km withdist
// 返回11位字符的geohash字符串
geohash key name
geohash china:city beijing
// 返回所有的地理数据
zrange key 0 -1
// 移除地理数据
zrem key beijing
Hyperloglog 基数类型命令(命令都是pf开头)
基数统计的算法
// 创建一组元素
pfadd key a b c d e
// 元素个数
pfcount key
// 元素并集
pfmerge key key1 key2
Bitmap 位图类型命令
位存储,只有0和1两个状态
// 设置值
setbit key offset value
// 获取值
getbit key offset
// 获取所有数量
bitcount key
事务命令
开启事务(multi)
命令入队(。。。)
执行事务(exec)
放弃事务(discard)
消息发布与订阅
// 订阅频道
subscribe message
// 发布消息到频道
publish message hello
集群-主从复制
真实的主从配置,都是修改配置文件,这样才是永久的
主机可以读写,从机只可以读,不可以写
// 查看当前节点信息
info replication
// 让自己成为一个从机
slaveof host port
// 让自己成为一个主机
slaveof no one
哨兵模式
哨兵检测各个节点,如果主机宕机了,会主动选取新的主机
配置哨兵配置文件 sentinel.conf
// sentinel monitor 自定义监控的名称 监控的主机ip 监控的主机port 如果主机挂了,从机投票选取新的主机
sentinel monitor myredis 127.0.0.1 7649 1
启动哨兵模式
redis-sentinel sentinel.conf
网友评论