Redis所有类型的常用命令

String 
set key value存值
get key取值
select db选择数据库(16个)
DBSIZE查看当前数据库的大小
FLUSHALL清空全部数据库
flushdb清空当前数据库
keys *查看所有的key
EXISTS key判断key是否存在
move key 当前数据库从当前数据库移除key
EXPIRE key time设置key的存在时间,单位为秒
ttl key查看这个key的存活时间
type key查看key的数据类型
APPEND key value先key后面追加值,如果不存在,就相当于set key 值
STRLEN key获取key的字符串的长度
incr key每执行一次,key加一,自增一
decr key每执行一次,key减一,自减一
inceby key num每执行一次,key加num
decrby key num每执行一次,key减num
GETRANGE key num1 num2获取key值的第num1到num2的值,截取字符串
GETRANGE key 0 -1查看key全部的字符串,等同与get key
SETRANGE key num value修改key的值,从num(起始位为0)开始,将后面的替换为后面输入的值
setex key time value设置key的值且设置多少时间后过期
setnx key value如果key不存在,则创建并赋值,如果key存在,创建失败
mset k1 v1 k2 v2 k3 v3...同时设置多个值
mget k1 k2 k3 ....同时取多个值
metnx k1 v1 k4 v4k1已经存在,k4不存在,但是返回0,操作失败,即这是一个原子性操作
mset user:1:name lzx user:1:age 21设置一个user:1对象,并有name和age两个key,且为其赋值(可以实现key(name,age)的复用)
mget user:1:name user:1:age取出user:1对象中name和age的值
getset key value先get这个key,如果是空值则返回nil,,如果存在值,则返回这个值,随后为其赋值
  
  
LISTL开头
lpush key value1向key这个list集合里赋值
lrange key num1 num2在key这个list集合中,取出num1到num2的值,通过区间取值
lpush先进后出,头插法
rpush先进先出,尾插法
lpop移除集合的第一个元素
rpop移除集合的最后一个元素
lindex key num获取集合的第num个值(起始下标为0)
llen key获取集合的长度
lrem key num value移除集合中值为value的值,并指定移num个(从下标0开始)
ltrim key num1 num2截取集合中下标从num1到num2的值(集合只剩下截取的值)
rpoplpush key1 key2移除key1中的最后一个元素,并将其放到key2中
lset key num value将key集合中下标为num的值更新为value,不存在报错
linsert key before/after value1 value2向key集合中的value1元素的before/after插入value2
  
  
Set(不能重复,无序)S开头
sadd key value向set集合中添加值(不能插入重复的)
smembers key查看set集合所有的值
sismember key value判断key集合中是否含有value这个值
scard key获取set集合key中元素的个数
srem key value移除set集合key中值为value的元素
srandmember key count获取set集合key中随机count个值,不加count默认为1
spop key count随机移除key中的元素,count表示要移除的个数,默认为1
smove key1 key2 value将key1中的元素value移动到key2中
sdiff key1 key2...(差集)比较key1中,key2集合没有的值,并将其返回,顺序互换,返回的值比一定相同(可以比较多个集合)
sinter key1 key2...(交集)返回两个集合中中共同拥有的元素,可以交换顺序,(可以比较多个集合)
sunion key1 key2...(并集)返回两个集合的并集(可以合并多个)
  
  
Hash Map集合key-map(key-<k v>),存的是map集合(k不能重复)
hset key map<k v>设置一个key键,里面存储一个map集合,即在一个key键中,可以存储任意对map集合,前提是k不能重复
hget key k取出key键中,k对应map集合的值v
hmset key <k v> <k1 v>...存储多个值,可以覆盖
hmget key k k1 k2...获取多个值
hgetall key获取key中的所有键值对
hdel key k删除hash指定的k键值对
hlen key获取hash集合中key里面的键值对数量
hexists key k判断hash集合key中k这个键值对是否存在
hkeys key显示hash集合中key的所有map集合的k值
hvals keyh显示hash集合中key的所有map集合的v值
hincrby key k num对hash集合中key里面的k对应的键值对的值v进行加法,加num
hdecrby key k num对hash集合中key里面的k对应的键值对的值v进行减法,减num
hsetnx key k v如果hash集合中key存在kv这个键值对,则创建失败,否则创建一个(k对应即可)
  
  
Zset(有序集合) 
zadd key 序列 value添加一个元素(添加相同序列的值时,往那个序列后添加,后面的值向后移)
zrange key num1 num2查看set集合key中区间的值
zrangebyscore key -inf +inf从小到大排序(默认zrange key 0 -1就已经排好序了)
zrangebtscore key -inf +inf withscores带值从小到大进行排序
zrangebyscore key -inf num withscores将num以下的元素带值从小到大排序
zrevrange key 0 -1 withscores带值从大到小进行排序
zrevrangebyscore key +inf num withscores将num以上的元素带值从大到小排序
zrem key value移除元素
zcard key查询有序集合中key的元素个数
zcount key num1 num2获取值在num1到num2之间的元素的数量
  
  
geospatial地理位置底层的实现原理就是Zset,可以使用Zset的命令来操作geo
geoadd key value(纬度,经度,名称)添加一个值
geopos key value查找
geodist key value1 value2 (km)两个value之间的距离,单位为米,后面可以追加单位
georadius key 自身位置 半径 whihdist withcoord count获得周围的人的数量,限定数量count
georadiusbymember value 半径查询以value为中心一定半径内的成员
geohash key value将二维的经纬度转换为一维的字符串
  
  
Hyperloglog基数(不重复的值)统计的算法,有容错
pfadd key value1 value2...存值
pfcount key计算key 中不重复的值的个数
pfmerge key key1 key2将key1和key2合并成key
  
  
Bitmaps (位储存)适用于(活跃,不活跃)(登录,未登录)(打卡,未打卡)两个状态的(只有0和1)都可以使用Bitmaps
setbit key value 0/1给key中的value设置0或1状态
getbit key value查看key中value的状态
bitcount key统计key中状态为1的数量
  
  
事务单条命令保证原子性,但是事务不保证原子性
multi开启事务
exec执行事务
discard取消事务
  
  
监控watch 乐观锁
悲观锁很悲观,什么时候都能会出问题,无论做什么都要加锁
乐观锁很乐观,认为什么时候都能会出问题,所以不会上锁,更新数据的时候判断一下,在此期间是否有人修改过数据,比较version
测试:1,对一个数据进行监控watch value2,开启事务,对value进行修改操作
3,再开启体格客户端,模拟多线程操作4,在新的客户端中修改value的值
5,在将原来的客户端的事务执行6,返回inil,操作失败
unwatch放弃监视,然后在重新监视
  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值