Redis---数据类型

五大数据类型

key操作

.....bin/redis-cli                连接Redis
keys *                            查看当前库所有key
exists key                        判断某个key是否存在
type key                          查看你的key是什么类型
del key                           删除指定的key数据
unlink key                        根据value选择非阻塞删除
                                  仅将keys从keyspace元数据中删除,真正删除会在后续异步操作
expire key 10                     10秒钟:给给定的key设置过期时间
ttl key                           查看还有多少秒过期,-1表示永不过期、-2表示已过期
select  数字                       命令切换数据库,0-15,一共16个数据库,从零开始
dbsize                            查看当前数据库key的数量
flushdb                           清空当前库
flushall                          通杀全部库

string类型

        一个Redis中字符串value最多可以是512M
         key中存储的是value
       -----------------------简单动态字符串
       
set <key><value>                   添加键值对,可以覆盖原有的键值对
get <key>                          查询对应的键值
append <key><value>                将给定的<value>追加到原值末尾
strlen <key>                       获取值得长度
setnx <key><value>                 只有在key不存在时,设置key值,存在时不能覆盖、替换
incr <key>                         将key中存储的数字值增1(value)
                                   只能对数字值操作,如果为空,新增值为1
decr <key>                         将key中存储的数字值减1
                                   只能对数字值操作,如果为空,新增值为-1
incrby/decrby <key><步长>          将key中存储的数字值增减。自定义步长 
                               --- 是原子操作,不会被线程调度机制打断的操作
mset <key1><value1><key2><value2>........
                                   同时设置一个和多个key-value对
mget <key1><key2><key3>......      同时获取一个和多个value
msetnx <key1><value2><key2><value2>......         
                                  同时设置一个和多个key-value对,当且仅当所有给定的key都不存在
getrange <key><起始位置><结束位置>
                                  获得值的范围,类似于substring
setrange <key><起始位置><value>    
                            用<value>覆写<key>所存储的字符串值,从<起始位置>开始(索引从0开始)
setex <key><过期时间><value>       设置键值的同时,设置过期时间,单位秒  
getset <key><value>               以新换旧,设置了新值同时获得旧值

Redis列表—list

   单键多值
   双向链表,存值按照链表特点, 先进后出,后进先出
   将链表和压缩链表ziplist结合起来形成quicklist
   
lpush/rpush <key><value1><value2><value3>......    从左边/右边插入一个或多值
lpop/rpop <key>                                 从左边/右边吐出一个值。**值在键在,值光键亡**
rpoplpush <key1><key2>                          从<key1>列表右边吐出一个值,插入到<key2>左边
lrange <key><start><stop>                       按照索引下标获得元素(从左到右)
                                                 **0到-1代表所有值**
lindex <key><index>                             按照索引下标获取单个元素(从左到右)
llen <key>                                      获取列表长度
linsert <key> before <newvalue><value>          在<value>的前面插入<newvalue>插入值
linsert <key> after <value><newvalue>           在<value>的后面插入<newvalue>插入值
lrem <key><n><value>                            从左边删除n个value(从左到右)
lset <key><index><value>                        将列表key下标为index的值替换为value       

Redis集合—set

   自动排重的
   无序的集合,底层是hash表。所有value都指向同一个内部值 ,复杂度是1
   
sadd <key><value1><value>   
                                   将一个 或多个member元素加入到集合key中
                                   已经存在的member元素将被忽略
smembers <key>                     取出该集合所有值
sismember <key><value>             判断集合<key>是否含有该<value>值,有1,没有0,
scard <key>                        换回该集合元素个数 
srem <key><value1><value2>.        删除集合中元素
spop <key>                         随机从该集合中吐出一个值
srandmember <key><n>               随机从集合中取出n个值,不会从集合中删除
smove <key1><key2><value>          把value从第一个集合中移动到另一个集合中
                                   如果另一个集合中存在该元素,不作添加操作、
sinter <key1><key2>               返回两个集合交集元素
sunion <key1><key2>               返回两个集合并集元素
sdiff <key1><key2>                返回两个集合差集元素(key1中的,不包含key2中的)

Redis—哈希(hash)

数据类型有两种:短---ziplist(压缩列表),长---hashtable(哈希表)

hest <key><field><value>            给<key>集合中的<field>键赋值<value>
hget <key1><field>                  从<key1>集合<field>取出value
hmst <key1><field1><value1><field2><value2>...    批量设置hash值
hexists <key1><field>               查看哈希表key中,给定域field是否存在
hkeys <key>                         列出该hash集合中所有field
hvals <key>                         列出该hash集合中所有的value
hincrby <key><field><increment>     为哈希表key中的域field的值加上增量increment
hsetnxbn <key><field><value>        将哈希表中的域field的值设置为value
                                    当且仅当域field不存在

Redis有序集合zset

  Redis有序集合zset与普通集合set相似,没有重复元素的字符串集合
 每个成员都关联了一个评分(score),集合成员是唯一的,但是评分可以重复了
 评分(score)被用来从低到高排序集合中成员

 zadd <key><score1><value1><score2><value2>...
                       将一个或多个member元素及其score值加入到有序集合key当中
 zrange <key><start><stop>[WITHSCORES] 
                       返回有序集合key中,下标在<start><stop>之间的元素
                       带WITHSCORES,可以让分数一起和值返回到结果集
 zrangebyscore <key> <min> <max> [WITHSCORES] [limit offset count]
                       返回有序集合key中,所有的score值介min和max之间(包括min或max)的成员
                       有序集成员按score值递增(从小到大)次序排列,
 zrevrangbyscore <key> <max> <min> [WITHSCORES] [limit offset count]
                       同上,从大到小 排列
 zincrby <key><increment><value>    为元素的score加上增量increment
 zrem <key><value>                 删除该集合下,指定值元素
 zcount <key><min><max>            统计该集合,分数区间内的元素个数
 zrank <key><value>                返回该值在集合中的排名,从0开始

发布与订阅

Redis发布订阅(PUB/SUB)是一种消息通信模式:发送者(PUB)发送消息,订阅者(sub)接收消息
Redis客户端可以订阅任意数量的频道

在这里插入图片描述

在这里插入图片描述
1,打开一个客户端订阅 channel1
SUBSCRIBE chadnel1u

2.打开另一个客户端,给channel1发布消息hellov
publish channell hellor

3.打开第一个客户端可以看到发送的消息。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值