redis基本使用

一、redis简介:  

redis是完全开源免费的,遵守BSD协议(BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。),是一个高性能的key-value数据库。是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串、哈希、列表、队列、集合结构直接存取,基于内存,可持久化

redis与其他的key-value缓存产品比较有三个特点

1.redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存中进行使用。

2.redis不仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3.redis支持数据的备份,即master-slave模式(也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机)的数据备份。

redis的优势

1.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

2.丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

3.原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

4.丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

应用场景:

1.会话缓存(最常用)

2.消息队列(支付)

3.活动排行榜或计数

4.发布、订阅消息(消息通知)

5.商品列表、评论列表

redis数据类型:

redis一共支持五种类型:string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted set 有序集合)。

1.string(字符串)

它是redis最基本的数据类型,一个key对应一个value,需要注意是一个键值最大存储512MB。

2.hash(哈希)

redis hash是一个键值对的集合, 是一个string类型的field和value的映射表,适合用于存储对象。

redis-cli 是进入redis的客户端的命令

命令:HSET KEY_NAME FIELD VALUE 

HSET key field value 将哈希表 key 中的域 field 的值设为 value 。

如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。

举例:hset key field "520" 

HSET key field 获取哈希表key中域field的value值

举例:hget key field

3.list(列表)

是redis简单的字符串列表,按照插入顺序排序

操作命令

lpush ----先进后出,在列表头部插入元素

举例:lpush mylist firstele

rpush -----先进先出,在列表的尾部插入元素

举例:rpush mylist secondele 

此时mylist的顺序是{firstele,secondele},secondele是后插入的,使用rpush在尾部插入元素

lrange -----出栈,根据索引,获取列表元素

举例:lrange mylist 0 2  获取mylist里获取索引0---2的元素

llen ----链表长度,元素个数

举例:llen mylist

lpop ----左边出栈,获取列表里的第一个元素

举例:lpop mylist

rpop---- 右边出栈,获取列表里面的最后一个元素

举例:rpop mylist

lindex---根据索引,取出元素

举例:lindex mylist  2  取出mylist里面索引为2的元素

Lrem---根据key,删除n个value 

ltrim---根据索引,删除指定元素

lset---根据index,设置value

linsert before---根据value,在之前插入值

linsert after---根据value,在之后插入值

注意 
出栈,该元素在链表中,就不存在了 
左边,默认为列表的头部,索引小的一方 
右边,默认为列表的尾部,索引大的一方

4.set(集合)

string类型的无序集合,不可重复

sadd--添加元素

 srem---删除命令

sismember---判断元素是否存在(存在返回1,不存在返回0)

sdiff---返回两个集合中的差集(与集合顺序有关)

举例:sdiff myset myset2 结果:set1 (myset域myset2相差set1)

sinter--- 两个集合中的交集

sunion---两个集合的并集

scard---查看具体数量

srandmember--随机提取元素

sdiffstore ---将两个集合相差的成员存储到另一个集合中

sinterstore---将两个集合交际的成员存储到另一个集合中

sunionstore---并集存储

5.zset(sorted set 有序集合)

是string类型的有序集合,不可重复

sorted set中的每个元素都需要指定一个分数,根据分数对元素进行升序排序,如果多个元素有相同的分数,则以字典序进行升序排序,sorted set 因此非常适合实现排名

ZADD key score member -->添加方法(如果值存在添加,将会重新排序)

举例:zadd nosql 0 003 添加分数为0 值为003的zset(名字是nosql)集合

zcount-->获取指定分数直接成员的个数

举例:zcount nosql 0 0 获取名字叫nosql的zset集合分数在0--0之间的数量

zrem-->删除指定的一个或多个成员

举例:zrem nosql 002   删除成员002(删除多个直接在后面添加)

zscore-->获取指定值的分数

举例:zscore nosql 003 获取成员003的分数

zrangebyscore -->根据指定的分数范围获取值

举例:zrangebyscore nosql 0 10 获取名字为nosql的zset集合里面分数在0--10之间的成员

参考:https://blog.csdn.net/qq_36411874/article/details/82286063

参考:https://blog.csdn.net/middleware2018/article/details/80355418

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值