美文网首页Redis
Redis基本命令使用

Redis基本命令使用

作者: WebGiser | 来源:发表于2022-01-05 20:09 被阅读0次

参考网址: 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

相关文章

网友评论

    本文标题:Redis基本命令使用

    本文链接:https://www.haomeiwen.com/subject/mevhcrtx.html