Redis基本操作

信息添加
set key value

信息查询
如果不存在,返回空(nil)
get key

清屏
clear

帮助
获取帮助文档,获取组中所有命令信息名称
help 命令名
help @组名

key操作:
keys *查看当前库所有key
exists key 判断某个key是否存在
type key 查看你的key是什么类型
del key 删除指定的key数据
unlink key 根据value选择非阻塞删除
expire key 10 10秒:给指定的key设置过期时间
ttl key 查看还有多少秒过期 -1表示永不过期,-2表示已过期

select 命令切换数据库
dbsize 查询当前数据可的key的数量
flushdb 清空当前库
flushall 通杀全部库

数据类型
string:
string类型是二进制安全的。意味着redis的string可以包含任何数据,比如jpg图片或者序列化的对象
一个redis中字符串value最多可以是512m
数据添加
set key value

获取修改数据
get key

删除数据
del key

添加修改多个数据
mset key1 value1 key2 value2....

获取多个数据
mget key1 key2...

获取数据字符个数(字符串长度)
strlen key

只有在key不存在时 设置key的值
setnx key value 

同时设置一个或多个key-value对,当且仅当所有给定key都不存在
msetnx  key1 value1 key2 value2....

追加信息到原值尾部(如果原值在就追加,否则新建)
append  key value

设置数值增加指定范围的值<指定正负都可以>
incr key
incrby key increment
incrbyfloat key increment

设置数值减少指定范围的值
decr key 
decrby key increment

设置数据具有指定的生命周期
setex key 秒 value
psetex key 毫秒 value

获取值的范围
getrange key 起始位置 结束位置<索引从0开始,-1显示全部>

指定的范围设置值
setrange key 起始位置 value

以新换旧值,设置了新值同时获得了旧值
getset key value

key的设置约定
数据库中的热点数据key命名惯例
表名:主键名:主键值:字段名  value

hash:
键 字段 值
添加修改数据
hset key 字段 value 

获取修改数据
hget key field 
hgetall key(返回全部数据)

删除数据
hdel key field

添加修改多个数据
hmset key field1 value1 field2 value2....

获取多个数据
hmget key field1 field2.....

获取字段的数量
hlen key

获取表中是否存在指定的字段
hexists key field
 
获取哈希表表中所有的字段名或字段值
hkeys key
hvals key

设置指定字段的数据增加指定范围的值
hincrby key field increment
hincrbyfloat key field increment

list:
添加修改数据
lpush key value1 value2...
rpush key value1 value2...

获取数据
lrange key start[起始索引] stop[结束索引]
lindex key index
llen key

获取并移除数据
lpop
rpop

从key1列表右边移除一个值,插到key2列表左边
rpoplpush key1 key2

按照索引下标获得元素<从左到右>
lrange key start  stop

规定时间内并移除数据
blpop key1 key2 timeout[秒]
brpop key1 key2 timeout

移除指定数据
lrem key count[个数] value

将列表key下标为index的值替换成value
lset key index value 

在value的后面插入newvalue插入值
linsert key before value newvalue

set:
添加数据
sadd key value1 [value2]

获取全部类型
smembers key

删除数据
srem key value1 [value2]

获取集合数据总量
scard key

判断集合中是否包含指定数据
sismember key value

随机获取集合中指定数量的数据
srandmember key count

随机获取集合中的某个数据并将该数据移除集合
spop key

求两个集合的交、并、差集
sinter key1 [key2]
sunion key1 [key2]
sdiff key1 [key2]

求两个集合的交、并、差集并存储到指定的集合中
sinterstore destination[指定的集合] key1 [key2]
sunionstore destination key1 [key2]
sdiffstore destination key1 [key2]

将指定数据从原始集合中移动到目标集合中
smove source[指定数据] destination[原始] member[目标]

sorted_set(有序集合):
添加数据
zadd key score1 value1 score1 value1

获取全部数据
zrange key start stop [withscores] 升序排序
zrevrange key start stop[withscores] 降序排序

删除数据
zrem key value [value ....]

按条件获取数据
zrangebyscore key min max [withscores] [limit]
zrevrangebyscore key min max [withscores]

条件删除数据
zremrangebyrank key start stop
zremrangebyscore key min max

获取集合数据总量
zcard key
zcount key min max

集合交、并操作
zinterstore destination numkeys[几个] key [key...]
zunionstore destination numkeys key [key...]

获取数据对应的索引
zrank key value
zrevrank key value

score值获取与修改
zscore  key  value
zincrby key increment[递增值||递减值] value

发布和订阅
发布订阅是一种消息通信模式:发送这发送消息,订阅者接受消息
发送者发送频道1,订阅者订阅了频道1,就能收到消息,没有订阅频道1,就收不到消息。
1、打开客户端订阅 channel1<频道1>
SUBSCRIBE channel1
2、打开客户端,给channel1发布消息 hello
publish channel1 hello

redis6新数据类型
Bitmaps:
设置某个偏移量的值(0或1)
setbit key offset<偏移量,就把偏移量当作字段(数字字段)> value<只能设置0和1>

获取某个偏移量的值
getbit key offset 

统计key字符串被设置为1的bit数
bitcount key

 bitop是一个复合操作,它可以做多个bitmaps的and(交集)、or(并集)、not(非)、xor(异或)操作并将结果保存在destkey中
bitop and(or、not、xor) destkey key1 key2...

HyperLogLog:
添加指定元素到key中
pfadd key element1  [element2...]

计算key的近似基数
pfcount key [key ...]

将一个或多个sourcekey合并后的结果存储另一个destkey中
pfmerge destkey sourcekey [sourcekey...]

Geospatial:
添加地理位置
geoadd key longitude latitude member [longitude latitude member....]
例子:geoadd china:city 116.38 39 beijing

获取指定地区的坐标值
geopos key member [member...]

获取两个位置之间的直线距离
geodist key member1 member2

已给定的经纬度为中心,找出某一半径内的元素
georadius key longitude latitude radius m|km|ft|mi

事务和锁的机制
基本操作:
事务是一个单独的隔离操作:事务中的所有命令都会序列化,按顺序的执行。事务
在执行的过程中,不会被其他客户端发送过来的命令请求打断。
事务主要作用就是串联多个命令防止别的命令插队。
从输入Multi命令开始,输入的命令都会依次进入命令队列中,但不会执行,
直到输入Exec后,redis会将之前的命令队列中的命令依次执行。
组队的过程中可以通过discard来放弃组队。
Multi
[组成队列命令]
命令               discard
..... --------------[放弃组队]
Exec
[执行队列命令]

悲观锁:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这
样别人想拿这个数据就会block直到它拿到锁。
乐观锁:每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会
判断一下,在此期间别人有没有去更新这个数据,可以使用版本号等机制。
WATCH key [key....]
在执行multi之前,先执行 watch key1 [key2],可以监视一个或多个key,如果在事务执
行之前这个或许这些key被其他命令所改动,那么事务将被打断。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值