【4】Redis五大数据类型

官网对于Redis的介绍为
在这里插入图片描述
一下是Redis中文网的全段翻译:
Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库缓存消息中间件MQ。它支持多种类型的数据结构,如字符串( strings ),散列( hashes ),列表( lists ),集合( sets ),有序集合( sorted sets )与范围查询,bitmaps,hyperloglogs和地理空间( geospatial )索引半径查询。Redis内置了复制( replication ),LUA脚本( Lua
scripting ),LRL驱动事件( LRU eviction ),事务 ( transactions )和不同级别的磁盘持久化 ( persistence ),并通过Redis哨兵( Sentinel )和自动分区( Cluster)提供高可用性( high availability )。

可以在Redis中文网对所有的命令查询:附上查询网站

1、redis-key

keys *  #查看所有的key
set key value  #set key
get key #查看key
exists key  #判断当前key是否存在
move key 1 #移除当前key 1表示当前数据库
expire key time #设置key的过期时间 时间默认是秒
ttl key #查看当前key还有多少时间过期
type key #查看key是什么类型

2、String

string的使用场景:

  • 计数器
  • 统计数量
  • 粉丝数
  • 对象缓存存储

一些常用指令

append key value #在字符串后追加 如果不存在就新建一个key
strlen key #获取字符串的长度
incr key  #自增 如果不存在就新建一个key,然后加1
decr #自减
incrby key int # key自增多少(设置步长,指定增量)
decrby key int # key自减多少
getrange key start end #截取字符串(前闭后闭,[0,-1] ,-1表示截取所有)
setrange key start  str #替换字符串 要替换的长度就是新的字符串长度
setex(set with expire)  key time value #设置一个字符串并设置过期时间
setnx(set if not exist) key value # 如果不存在就设置新的,成功返回1,失败返回0
mset key1 value1 key2 value2 key3 value3 #一次设置多个值
mget key1 key2 key3 #一次获取多个值
msetnx key1 value1 key2 value2 #如果不存在就设置多个值,是原子性操作
#对象操作
set user:1 {name:zhangsan,age:2} #设置一个user:1的对象 值为json字符来保存一个对象
mset user:1:name lisi user:1:age 12 #利用Redis k-v设置对象
getset key value #先获取key的值再将key的值设置为value,不存在就返回nil(null)

3、List

实际上是一个链表,可以在元素的之前或者之后、链表的左边或者右边插入元素,可以用来做消息队列(lpush rpop),栈(lpush lpop)。

  • 如果key不存在,就会创建新的链表
  • 如果key存在,新增内容
  • 如果移除了所有的值,空链表,也代表不存在
  • 在两边插入或者改动值,效率最高
    所有的List命令都是L开头的。对于List存储的理解为:
    在这里插入图片描述
lpush key element #将一个值或者多个值插入到列表头部(左)
rpush key element #将一个值或者多个值插入到列表头部(右)
lrange key start end #获取list的值
lpop key num   #移除list中左边的第一个值(默认为1,后面可以增加移除的数量)
rpop key  num   #移除list中右边的第一个值(默认为1,后面可以增加移除的数量)
lindex key index  #获取list下标的值
llen key #获取list的长度
lrem key count element  #移除list中指定数量的元素(精确匹配)
ltrim key start stop  #截断list中的数据 (只保留截断内的)
rpoplpush oid newlist #移除列表最后一个(右边)元素,并把这个元素添加到一个新的列表中
lset key index element # 将列表中指定下标(index)的值替换为另一个(element )(如果index不存在就会报错)
linsert key before|after pivot value  #将某个具体的value插入到列(pivot)的之前或者之后(精确)

4、set(集合)

sadd  key member  #向set中添加值
smembers  key  #查看指定key的所有值
sismember key member  #判断一个值是否在set中 (存在则返回1)
scard key #获取当前元素内容的个数
srem key member #移除set中的指定元素
srandmember key count #随机count 个元素(默认为1 )
spop key  #随机删除set中的元素
smove oldkey newkey member # 将一个指定的值从oldkey移动到newkey

  • 差集 sdiff
  • 交集 sinter
  • 并集 sunion

5、Hash(哈希)

Map集合 ,key-map (实际上就是key-<key - value>)!
hash更适合对象对的存储,String更适合字符串额存储,hash可以用来保存经常变动的信息例如:用户信息,可以设置为 user:1 name xiaoming。

hset key field value #set一个具体的 key-value
hget key field #get一个字段值
hmset key field1 value1 field2 value2 #set多个具体的 key-value
hmget key field1 field2 #get多个字段值
hgetall key #获取全部的数据(以键值对的形式)
hdel key field #删除指定的key字段,对应的value值也没了
hlen key #查看指定hash字段长度
hexists key field #判断hash中指定的字段是否存在
hkeys key #获取所有的field
hvals key #获取所有的value
hincrby key field increment #指定增量
hdecrby key field increment #指定增量 (没有hdecrby 自减命令!)
hsetnx key field value #如果不存在就能设置

6、Zset(有序集合)

可以用来做工资排序,重要消息传递,网站排行榜等。
zadd key score member #添加数据
zrangebyscore score -inf +inf #显示数据 从小到大
zrevrange key start end #可以实现从大到小排序(0 -1)
zrangebyscore salary -inf +inf withscores #显示数据 从小到大并且附带成绩(-inf +inf 可以更改成自己需要的数字作为区间)
zrem key member # 移除set中指定的元素
zcard key #获取集合中的个数
zcount key min max #获取指定区间的数量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值