Redis入门级知识

启动redis

redis-server.exe

启动之后会一直在后台运行


启动redis客户端

redis-cli


  string类型命令

redis中的数据是以键值对的形式存储的,我们需要指定一个key一个value,用set

set name xxx

name 为key,xxx为value

获取一个键的值

get name

 

 redis中的键是分大小写的,name和Name不一样

删除命令del

del name

 

 exists命令判断一个键是否存在

exists name

 

 0代表不存在,1代表存在

keys命令查找redis中都有哪些键

keys *

 

 查找以me结尾的键

keys *me

 

 flushall命令,删除所有的键

redis中的数据是以二进制的形式存储的,所以是不支持中文的

设置中文的话是以十六进制显示的

想要显示中文的话,先quit退出redis客户端,重新进入客户端时加上--raw,代表显示原始数据

TTL(Time To Live)查看一个键的过期时间

TTL name

-1代表并没有设置过期时间

用expire设置一个过期时间

expire name 10

代表设置name键的过期时间为10秒

-2代表这个键已经过期了

使用setex设置键值对的过期时间

setex name 5 xxx

setnx命令,只有在键不存在的时候才设置键的值,如果键存在的话,则不变

setnx key value


 列表

lpush将值放到列表尾部

lpush li a 

 将“a”值放入li列表中的头部

lrange查看列表中的元素

lrange li 0 -1

 0代表第一个位置,-1代表列表中的最后一个位置

rpush将值放到列表尾部

使用lpop从列表的头部删除元素

使用rpop从列表的尾部删除元素

lpop li 

rpop li 

 

lpop li 2

 代表删除列表头部的两个元素

llen命令查看列表的长度

llen li 

ltrim命令trim代表修剪的意思

ltrim li 1 3

 代表除了1-3位置的元素都被删除掉

 


 无序集合

 set 是一种无序集合,它和列表的区别就是列表中的元素可以重复,而set中的元素不能重复,set中的元素不像列表中的元素那样有顺序

set的命令都以s开头

sadd像set中添加一个元素

sadd course redis

 

 1代表添加成功

smembers命令查看这个set中的元素

smembers course

 

sismember命令查看这个元素在不在集合中

sismember 集合名称 元素

srem命令删除集合中的元素

srem 集合名称 元素


 有序集合SortedSet(ZSet)

和集合的区别:每个有序集合中的元素都会关联一个浮点数,按照这个数,从小到大排序,有序集合的元素是唯一的,分数可以不唯一。

有序集合的相关命令都是以Z开头的。

zadd命令,向集合中添加元素

zadd 集合名称 分数 元素

zadd score 99 name1 98 name2 97 name3

zrange命令,查看集合中的元素(输出顺序按照分数的从小到大)

zrange score 0 -1 withscores(显示分数)

 

zscore命令,查看某个成员的分数

zscore 集合名称 元素名称

 

zrank命令查看某个元素的排名

zrank 集合名称 元素名称

 

zrevrank命令,从大到小排序

zrevrank 集合名称 元素名称

zrm命令,删除某个成员 


哈希

hset命令,向一张hash表中添加一对键值对

hset person name zz

hget命令,从hash中通过键找值

hget person name

 

hgetall命令,获取hash中所有的键值对

hgetall person

hdel命令,删除hash中的某个键值对

hdel person age

hexists命令,通过key判断所对应的键值对存不存在

hexists person name

hkeys命令,获取键

hkeys person

hlen命令,获取键值对数量

hlen person


 订阅与发布

subscribe(订阅)命令,订阅一个频道

subscribe channel(频道名称)

publish(发布消息)命令,发布消息到频道

publish channel 消息


 消息队列stream

可以解决订阅与发布的消息无法持久化的问题和无法记录历史消息的问题。

stream相关命令以x开头

xadd stream * course git

*代表自动生成消息id或者可以改为x-x的形式

xadd stream 1-0 course git

 xlen stream

 

 xrange stream - +

 - +代表所有消息

删除对应id的消息

 xdel stream id

 

 删除所有

xtrim stream maxlen 0

 生产者生产消息并用xadd加入消息队列中,消费者需要从消息队列中读取消息以消费信息。

xread count 2 block 1000 streams 消息队列名称 0

 count 2 代表一次读两条消息

1000代表如果没有消息读取则阻塞1s

0代表从头开始读取

获取目前发的消息

xread count 2 block 10000 streams 消息队列名称 $

先开始读,进入阻塞,另一个终端向队列中加个消息,则在阻塞中就会收到消息

$代表获取目前发的消息


地理位置信息

地理位置相关的命令都以geo开头

 添加一个地理位置信息

geoadd city 116.405285 39.904989 bei jing

 

 获取一个地理位置信息

goepos city bei jing

 

 计算两个地理位置之间的信息

geodist city beijing shanghai

 

换算成KM,加一个km

geodist city beijing shanghai KM

 

 搜索范围内的成员

geosearch city frommember shanghai byradius 300 km

 上述命令代表搜索以上海为中心的300km为半径的圆里的成员


 HyperLogLog

 HyperLogLog是一种用来做基数统计的算法

基数:如果集合中的每个元素都是唯一且不重复的,那么这个集合的基数就是集合中元素的个数

 命令都以pf开头

通过pfadd命令来添加一个元素

pfadd course git

 添加一个课程元素,名字叫git

 pfcount命令来查看基数

 pfcount course

 

 pfmerge合并两个

先创建课程2

pfadd course2 python

 将course和course2合并到result中

pfmerge result course course2

 


位图

位图是字符串类型的扩展,可以使用一个string类型来模拟一个bit数组,数组的下标就是偏移量,值只有0和1,支持一些位运算,与或非异或

位图所有命令都以bit开头

设置一个偏移量的值

setbit dianzan 0 1 

代表设置key为dianzan偏移量为0上的值为1

 setbit dianzan 1 0

代表设置key为dianzan偏移量为1上的值为0

获取key为dianzan偏移量为0上的值

getbit dianzan 0

位图本质上是字符串,可以用字符串的命令来设置位图的值

设置位图前四位偏移量都为1,后四位偏移量为0

set dianzan "\xF0"

xF0代表用十六进制代表11110000

统计一个key的值里面有多少个bit是1

bitcount dianzan

bitpos命令可以获取位图中第一个出现的0和1的位置

bitpos dianzan 0

代表第一个出现0的位置是4


 位域

位域能够将很多小的整数,存储到一个较大的位图中,这样可以更加高效的使用内存

bitfield player:1 set u8 #0 1

key:player:1

u8:代表u8类型的整数,8位无符号整数

#0代表第一个位置

1代表等级(值)

get player:1

获取player:1的信息

返回十六进制的“\x01”

获取值

bitfiled player get u8 #0

设置一个无符号位的32位整数,第二个位置的值#1

bitfield player:1 set u32 #1  100

 


事务

通过multi开启一个事务,

接下执行的所有命令,都会进到缓存队列中

通过exec命令开始执行命令

如果在事务的执行过程中,某一个命令执行失败了,并不会影响它后面的命令

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值