资讯专栏INFORMATION COLUMN

redis基本命令

liaorio / 494人阅读

摘要:连接查看键存取变量字符串操作查看类型查看是否存在切换数据库默认数据库获取多个操作原子操作没有操作获取片段,包含最右边的元素,支持负数索引获取所有元素从左边开始删除第一个值为的元素删除所有值为的元素从右边开始删除第一个值为的元素查

连接redis
redis-cli -h 192.168.2.215 -p 6379
查看键
keys *
存取变量
set num 1
get num
字符串操作
set str "hello"
append str "world"
strlen str
查看类型
type num
type amap
type alist
查看是否存在key
exists num
exists alist
hexists mmap email
切换数据库(默认0数据库)
select 1
获取多个key
mget num str
mset num 3 str "world"
bit操作
set fg "bar"
getbit fg 0
getbit fg 6
setbit fg 0 1
bitcount fg
原子操作
incr num
incrby num 3
decr num
decrby num 2
incrbyfloat num 2.1
#没有decrbyfloat
incrbyfloat num -0.1 
list操作
lpush alist a
lpush alist b
lpush alist c
rpush alist d
lpop alist
rpop alist
llen alist

获取片段,包含最右边的元素,支持负数索引

lrange alist 0 4

获取所有元素

lrange alist 0 -1

从左边开始删除第一个值为p的元素

lrem alist 1 p

删除所有值为p的元素

lrem alist 0 p

从右边开始删除第一个值为p的元素

lrem alist -1 p

查找索引为0的元素

lindex alist 0

查找右边第一个元素

lindex alist -1

通过索引赋值

lset alist 2 y

删除指定索引外的元素

ltrim alist 0 3

在指定值w后插入

linsert alist after w k

在指定值w之前插入

linsert alist before w x

从右边pop一个元素到目标列表

rpoplpush alist blist
按其他键排序
lpush slist 2 1 3
set itemscore:1 50
set itemscore:2 100
set itemscore:3 -10
sort slist by itemscore:* desc
集合操作
sadd myset a
sadd myset b c

查看所有

smembers myset

查看集合元素个数

scard myset

删除元素

srem myset c

判断元素是否在集合中

sismember myset c

集合运算

sadd seta 1 2 3
sadd setb 2 3 4

计算差集

sdiff seta setb

计算差集并存储到setj

sdiffstore setj seta setb
sadd setc 2 3
sdiff seta setb setc

计算交集

sinter seta setb

计算交集并存储到setx

sinterstore setx seta setb

计算并集

sunion seta setb

计算并集并存储到setu

sunionstore setu seta setb

随机获取元素

srandmember seta 2

从集合随机弹出一个元素

spop seta

集合排序,默认将元素转为双精度浮点,从小到大排序

sort seta

按照字典顺序

sort setn alpha
有序集合

列表是双向链表实现的,获取靠近两端的元素速度快,当元素增多时访问中间元素变慢

比较适合新鲜事、日志这种很少查询中间元素的应用

有序集合是使用散列表/跳跃表实现的,读取中间元素也很快

列表不能简单调整某个元素的位置,有序集合可以

有序集合会给每个元素计算分数,更耗内存,是所有集合中最高级的

zadd sortset 89 tom 90 jim 100 david

更新jim分数

zadd sortset 78 jim

按照得分从小到大查看元素

zrange sortset 0 -1

按照得分从大到小查看元素

zrevrange sortset 0 -1

查看元素和得分

zrange sortset 0 -1 withscores

查看得分

zscore sortset david

按照得分范围查看,包含90

zrangebyscore sortset 90 100

不包含90

zrangebyscore sortset (90 100

无穷,从第二个人开始取3个人

zrangebyscore sortset (80 +inf limit 1 3

增加某个元素分数

zincrby sortset -3 tom

获取元素个数

zcard sortset

获取指定范围内元素个数

zcount sortset 90 100
zcount sortset (89 +inf

删除一个或多个元素

zrem sortset jim

按照排名删除

zremrangebyrank sortset 0 2

按照分数范围删除分数

zremrangebyscore sortset (60 80

获取排名,从小到大

zrank sortset jim

获取排名,从大到小

zrevrank sortset jim

计算有序集合交集

zadd t1 1 a 2 b
zadd t2 10 a 20 b

2为元素个数

zinterstore rs 2 t1 t2

aggregate为新集合元素分数的计算方式

zinterstore rs1 2 t1 t2 aggregate min
zinterstore rs2 2 t1 t2 aggregate max
zinterstore rs3 2 t1 t2 aggregate sum

增加权重

zinterstore rs4 2 t1 t2 weights 1 0.1
zrange rs2 0 -1 withscores
map操作
hset amap name "psersia"
//update or insert a key
hset amap email "a@g.com"
hget amap name

hgetall amap

hmset mmap username persia password pw age 3
hmget mmap username age
hgetall mmap
//当字段不存在时赋值,atomic
hsetnx mmap email p@gmail.com
hincrby mmap age 2
//如果不存在,则创建一个key
hincrby mmap score 60
hdel mmap score
hkeys mmap
hvals mmap
hlen mmap
事务
multi
sadd "user:1:following" 2
sadd "user:2:followers" 1
exec

watch的变量在watch之后被修改

#于是事务不执行,count值为2
set count 1
watch count
set count 2
multi
set count 3
exec
get count
设置缓存时间
set mycache 100

15分钟后失效,-1为永久存活

expire mycache 900

重新设置生存时间

expire mycache 90
#以毫秒为单位
pexpire mycache 1000
查看剩余的存活时间
ttl mycache

取消缓存,改为永久存活

persist mycache

set也可以清除生存时间

set mycache hello
ttl mycache
lpush,rpop实现消息队列
lpush q hello world
lpush q test msg
lrange q 0 -1
rpop q
//带10秒的超时时间
brpop q 10
//超时时间设为0,当没有元素时一直阻塞
brpop q 0
发布订阅模式
publish mychannel hi
subscribe mychannel
//匹配mychannel.1,mychannel.10
psubscribe mychannel.?*
unsbuscribe mychannel

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/36253.html

相关文章

  • redis学习笔记(三)--Redis的功能

    摘要:用于为做基准性能测试。设置请求总量代表客户端的请求总量,默认为。连接事务和基本概念提供了简单的事务功能以及集成脚本来解决问题。事务提供简单的事务功能,将一组需要一起执行的命令放到和两个命令之间。将结果保存在中。命令添加添加成功返回。 慢查询 基本概念 慢查询日志记录命令执行前后的超时的执行时间。(只记录命令执行时间) 慢查询的两个配置 Redis提供了slowlog-log-slowe...

    _Zhao 评论0 收藏0
  • Python--Redis实战:第三章:Redis命令:第七节:其他命令

    摘要:上一篇文章实战第三章命令第六节发布与订阅下一篇文章实战第四章数据安全与性能保障第节持久化选项到目前为止,本章介绍了提供的种结构以及的发布与订阅模式。 上一篇文章:Python--Redis实战:第三章:Redis命令:第六节:发布与订阅下一篇文章:Python--Redis实战:第四章:数据安全与性能保障:第1节:持久化选项 到目前为止,本章介绍了Redis提供的5种结构以及Redi...

    masturbator 评论0 收藏0
  • Python--Redis实战:第三章:Redis命令:第七节:其他命令

    摘要:上一篇文章实战第三章命令第六节发布与订阅下一篇文章实战第四章数据安全与性能保障第节持久化选项到目前为止,本章介绍了提供的种结构以及的发布与订阅模式。 上一篇文章:Python--Redis实战:第三章:Redis命令:第六节:发布与订阅下一篇文章:Python--Redis实战:第四章:数据安全与性能保障:第1节:持久化选项 到目前为止,本章介绍了Redis提供的5种结构以及Redi...

    lastSeries 评论0 收藏0
  • redis学习笔记(二):基本全局命令、字符串、哈希

    摘要:使用理解基本提供了种数据结构理解每次数据结构的特点在开发和运维中是很重要的使用版本本章内容如下基本全局命令字符串哈希结构全局命令有种数据结构它们是键值对中的值对于键来说是一些通用命令查看所有键例键总数命令会返回当前数据库中所有键的总数例检查 使用理解基本API redis提供了5种数据结构,理解每次数据结构的特点在开发和运维中是很重要的.使用redis版本:3.0.7 本章内容如下: ...

    Ocean 评论0 收藏0
  • 用Go实现Redis之一准备工作

    摘要:命令实现命令是最常用的命令之一,也是最能反映缓存发展历史的操作。命令在客户端接收之后,经由协议转换传递给服务端执行。服务端执行命令前先查询是否支持该命令,以决定是否执行。,是的简称,代表的是只存增量的持久化方式。 缘起 最近公司的第一个PHP转GO项目已经在生产环境稳定运行数周,又逢需求小年儿,最近可以得空分享下去年学GO过程中的练手项目Godis——用Golang实现的Redis. ...

    yacheng 评论0 收藏0
  • 用Go实现Redis之一准备工作

    摘要:命令实现命令是最常用的命令之一,也是最能反映缓存发展历史的操作。命令在客户端接收之后,经由协议转换传递给服务端执行。服务端执行命令前先查询是否支持该命令,以决定是否执行。,是的简称,代表的是只存增量的持久化方式。 缘起 最近公司的第一个PHP转GO项目已经在生产环境稳定运行数周,又逢需求小年儿,最近可以得空分享下去年学GO过程中的练手项目Godis——用Golang实现的Redis. ...

    zhangke3016 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<