Redis 数据类型及常用命令

1.redis相关简介
安装
  1. 安装好gcc
  2. 下载好对应的安装包
  3. 解压到相应的目录
  4. 使用make进行编译
  5. 进入/src中使用make install安装
  6. 进入redis.conf文件中修改相应的配置(密码,远程连接等等)
  • 默认16个数据库,类似数组下标从0开始,初始默认使用0号数据库。
  • Redis 单线程+多路IO复用。
2.常用的五大数据类型
2.0 key的操作
  • keys * 查看所有的键
  • exists key 返回1表示存在该键,返回0表示不存在该键
  • set key value 设置新的键
  • expire key 时间 表示key时间(s)过期
  • ttl key 查看key还有多少时间过期 -1表示不过期,-2表示已过期,其他表示还剩多少时间过期
  • select number 切换数据库[0,15]
  • dbsize 查看当期数据库中的key的数量
  • flushdb 清空当前库
  • flushall 清空全部库
2.1 字符串(String)

二进制安全的,最基本的数据类型,value最大512M,原子性

  • get key 获取值
  • append key value 向key的之后面追加value
  • strlen key 获取该key对应value的长度
  • setnx key value 只有key不存在的时候才能设置成功
  • mset k1 v1 k2 v2…设置多个key value
  • mget k1 k2 … 获取多个值
  • msetnx k1 v1 k2 v2 …
  • incr key 相当于++操作 数值类型才可以
  • decr key 相当于–操作 数值类型才可以
  • incrby / decrby key step += / -= 相应的步长
  • getrange key n1 n2 截取字符串
  • setrange key n1 value 在指定位置设置值
  • setex k1 time v1 设置key时一起设置过期时间
  • getset key value 使用value对旧值进行覆盖

String的底层数据结构,简单的动态字符串,类似于java中的ArrayList<>

2.2 List

单键多值 可以在头部或者尾部进行插入操作,底层就是一个双向链表,头尾操作效率很高。

  • lpush / rplush k 从左边或右边插入值
  • lrange n1 n2 取出列表中的值0 -1 表示取出全部
  • lpop / rpop 从左边或右边弹出一个值 (将list中的值取光后,key就不存在了)
  • rpoplpush k1 k2 k1右边中弹出一个值加入k2的左边
  • lindex key index 取对应下标的值
  • llen key 获取list的长度
  • linsert key before value newvalue 在value的前面插入新的值
  • lrem key num value 从左边删除num个value
  • lset key index value 将下标为index的值替换为value

list 的数据结构是一个快速链表quickList

2.3 Sst

类似于List,只不过set可以去重

  • sadd key v1 v2 …添加
  • smembers key 取出该集合的所有值
  • sismenber key v 检查key中是否存在v
  • scard key 返回元素个数
  • srem key v1 v2删除key中的元素
  • spop key 随机从key中取出一个值
  • srandmember key num从中取出num个数,不会删除掉
  • smove k1 k2 v 将v从k1—>k2
  • sinter k1 k2 取两个set的交集
  • sunion k1 k2 并集
  • sdiff k1 k2 差集(k1中有的,k2中没有的)

Set的底层数据结构是dict字典,字典是使用哈希表实现的。

2.4 Hash

类似于java中Map<String,Object>,适合存储对象。

  • hset key f v 给key对象中添加f–>v映射
  • hget key f 从对象中取出f属性的值
  • hmset key f v f v…批量加入
  • hexists key f 判断key中是否存在f属性
  • hkeys key 查看所有key
  • hvals key 查看所有属性
  • hincreby key f num 给key对象的f属性的值加上num
  • hsetnx key f v f v f属性不存在才添加

底层数据结构:ziplist + hashtable

2.5 Zset

Zset与普通集合非常相似,是一个没有重复元素的有序集合

  • zadd key score1 v score2 v 加入元素,照score升序排序
  • zrange key n1 n2 [WITHSCORES]取出n1到n2的值
  • zrangebyscore key min max [W…]取出score从min到max的值
  • zrevrangebyscore key max min [W…]取出score从max到min的值,按照降序排
  • zincreby key num f 给f属性增加num
  • zrem key f 删除属性f
  • zcount key min max 统计从min到max有多少个值
  • zrank key f 查看f的排名

数据结构:hash+跳跃表

3.redis中的新数据类型
3.1 BitMaps
  • setbit key offset(偏移量) value
  • getbit ket offset
  • bitcount key 统计1的数量
  • bitop and/or/not(非)/xor(异或) destkey [keys…]将结果保存在desteky中
3.2 HyperLogLog

主要用于基数的操作

  • pfadd key [element…]将element加入到hyperloglog中去。
  • pfcount key 统计出基数的数量
  • pfmergee destkey [key…] 将多个key合并
3.3 Geospatial
  • geoadd key [经度 纬度 地点…] 添加经纬度
  • geopos key 地点… 取出具体坐标位置
  • geo dist key l1 l2 [m|km|] 取两点之间的直线距离
  • georadius key 经度 纬度 半径 [m|km]
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值