Redis学习笔记

Redis是一个高性能开源的key-value存储系统。

1、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
2、Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,sorted set,hash等数据结构的存储。
3、Redis支持数据的备份,即master-slave模式的数据备份。
Redis优势:
1、性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
2、丰富的数据类型 – Redis支持二进制案例的 String, List, Hash, Set 及 Sorted Set 数据类型操作。
3、原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
4、丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性

基本操作

对string的操作

  • set 增加一个key-value
set hello work //增加了一个hello-world键值对
  • get 获取一个键的值
get hello //获取hello对应的值
  • type 获得一个键对应值的类型
type hello //获取hello对应值得类型
  • substr s a b 获取s对应值从a到b子串
substr hello 0 2 //结果为wor(因为hello对应的值是world,取world的子串)

append 给一个键对应的值后缀一个字符串

append hello !!! //然后hello对应的值

rename 修改一个键的名字

rename hello hell //hello键的名字改为hell

expire 设置一个键的活动时间

expire hello 6 //hello对应的键值对在6秒之后会自动销毁

ttl 查看相应键值对剩余的活动时间

ttl hello //可以输出对饮hello键剩余的活动时间

对list的操作

所有的操作之前存在一个l前缀可以理解为 l i s t list list

  • lpush 头部插入元素
lpush list 1 //从list链表头部插入一个元素1
  • rpush 尾部插入元素
rpush list 2 //从list链表的尾部插入一个元素2
  • lrange 遍历链表中的所有元素
lrange list a b //输出链表list中a到b的元素,输出元素个数为(b-a+1)
  • lindex 输入链表对应位置的元素
lindex list 1 //输出链表1号位置对应的元素,下标从0开始
  • ltrim 截取对应链表
ltrim list 0 3 //截取仅保留链表的0~3号位置

lrem 删除某些元素

lrem list 2 haha //从链表list中删除2个值为haha的元素

lpop 删除链表的头部元素

lpop list //删除链表的头部元素

对set的操作

redis中set是一个无序的集合

  • sadd 向集合中添加元素
sadd set1 1 //向集合set1中添加元素1
  • sdel 删除集合中的某个元素
srem set1 1 //删除集合set1中的值为1的元素
  • smembers 返回集合中所有的元素
smembers set1 //获得set1中的所有元素
  • sismember 查看某个元素是不是某个集合的成员
sismember set1 1 //查看1是不是set1的元素,是的话返回1,否则返回0
  • sinter 求两个集合的交集
sinter set1 set2 //求set1和set2的交集
  • sunion 求两个集合的并集
sunion set1 set2 // 求两个集合的并集并输出

sinterstore 求两个集合的交集并保存到第三个集合当中

sinterstore set3 set1 set2 //求set1和set2的交集并保存到set3中

sunionstore 求两个集合的并集并保存到第三个集合当中
用法如sinterstore
sdiff 求个集合的差集

sdiff set1 set2

对zset的操作

zset相对于set是一个排序的集合,根据每个值得score去排序,所以在add一个新的元素的时候需要附加一个score属性

  • zadd操作
zadd zset 1 hello //在zset1中添加score为1值为hello的元素
  • zcard 查看某个集合中元素的个数
  • zscore 查看集合中某个元素的score
zscore zset hello //得到zset集合中hello的score
  • zrank 返回集合中某个元素的排名
zrank zset hello // 返回zset集合中hello的排名(根据score来排名,排名从0开始)
  • zrange 查看某个集合中的一段元素
zrange zset a b //查看zset中排名a~b的元素
zrange zset a b withscores //查看zset中排名a~b的元素,并显示他们的score
  • zrevrange 查看某个集合的倒序的某段元素(score从大到小)
  • zincrby 增加某个元素的score
zincrby zset 10 hello //如果元素存在则把他的score增加到10,如果不存在在添加该元素并设置他的score为10

对hash的操作

hash是一种常见的key-value结构,对于集合我们使用?add进行添加元素,在hash中我们使用hset添加键值对

  • hset 向某个hash中添加一个键值对
hset hash1 hello world //向hash1中添加键值对 hello-world
  • hget 获得某个键的值
hget hash1 hello //获取hash1表中的hello键对应的值
  • hlen获得某个hash的长度
hlen hash1 //获取hash1的长度
  • hexists 测试某个hash中是否存在某个键
hexists hash1 hello //测试hash1中是否存在hello键,如果存在的话返回1,否则返回0
  • hkeys 返回某个hash中所有的键
hkeys hash1 //输出hash1中所有的键
  • hvals 输出某个hash中所有的value
hvals hash1 //输出hash1中所有的值

hmget 批量获取一些键的值

hmget hash1 key1 key2 key3 //输出三个键在hash1对应的值

hmset 批量设置键值

hmset hash1 key1 value1 key2 value2 key3 value3 // 向hash1中添加三个键值对(可以添加多个)

Redis的发布和订阅操作

在Redis客户端中使用subscribe订阅某个频道(channel),实时监听某个频道,另一端可以使用publish ''来广播消息,每个订阅的客户端都可以收到消息
在这里插入图片描述
在这里插入图片描述
第一个发布消息,下面的所有客户端可以收到消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值