【Redis缓存数据库】Redis使用String类型及BitMap类型的操作

      通过上篇文章,已经在VMWare的虚拟机上的CentOS环境下,安装了Redis,接下来就是实际应用Redis的场景,这里当前主要以String类型、BitMap类型的相关操作进行实践。

一.Redis的启动及帮助操作

  • 指定数据库序列号进入redis

       之前已经将Redis进行了服务化并且将Redis的路径添加到了环境变量之中,因此,可以通过redis自带的客户端进入到Redis的操作界面中,主要通过以上的命令:

redis-cli -p 6379 -n 序列号

 总结:

      通过以上的命令,可以直接启动redis客户端,并开启6379的实例(redis中是以端口号来区分实例),如上面的-p 6379 那就是进入到端口号为6379的redis实例;针对每个redis实例,其默认会有对应15个数据库,因此,想指定进入的redis实例下的数据库,可以通过-n参数来指定,一般一个redis实例对应的数据库序列号是0~15(总共16个),redis的服务端口号一般默认是6379

  • 不指定数据库序列号进入redis

      通过不指定redis的数据库序列号进入,是默认进入到序列号为0的redis实例的数据库中,输入的命令如下所示:

redis-cli -p 6379

      如果进入到Redis系统之中,想更换数据库,可以使用如下命令,进行数据库的切换

select 序列号
  • 查看帮助文档

      对一个新程序的相关操作,肯定会有一些不太清楚的地方,这时候,可以在redis系统中通过如下命令进行查看:

help @类型名

      例如:在redis的控制台中,输入help @string,就可以查看redis针对string类型的操作,如下图所示:

           

二.Redis的针对KEY的操作

    

命 令描述
Type查询key的类型
PEXPIREAT设置 key 的过期时间,以毫秒计算,key 过期后将不再可用。
Rename用于修改 key 的名称
Persist用于移除给定 key 的过期时间,使得 key 永不过期
Move用于将当前数据库的 key 移动到给定的数据库 db 当中
RANDOMKEY从当前数据库中随机返回一个 key 
DUMP用于序列化给定 key ,并返回被序列化的值
TTL以秒为单位返回 key 的剩余过期时间
EXIPRE用于设置 key 的过期时间。key 过期后将不再可用
DEL用于删除已存在的键。不存在的 key 会被忽略
PTTL以毫秒为单位返回 key 的剩余过期时间
Renamenx用于在新的 key 不存在时修改 key 的名称 
EXISTS用于检查给定 key 是否存在
EXPIREAT用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用

注意事项:

     在redis中,对key的命令不区分大小写,但value的数值是区分大小写的。

三.Redis的String类型常用操作

  •  字符的操作

命令描述
SET key value[NX|XX]设置某个key的值是value,可选参数NX表示不存在的时候才设置,XX表示key存在的时候,才能修改key的值
MSET/MGET K1 K2 ...

表示可以取出多个k1,k2....的值,该操作是原子性的,只要一个key出现问题,该操作就会失败

getrange key start end其中start,end表示key对应的value中想取出的序列索引号
Setrange key offset value它会将key对应值从offset的序列号开始替换成设置的value数值
APPEND key value它表示会在key对应的值后面添加value
STRLEN key返回key对应的值的长度
  •   数值的操作

命令描述
INCR key key对应的值增加1
INCRBY key valuekey对应的值增加value
DECR keykey对应的值减少1
DECRBY key valuekey对应的值减少value
INCRBYFLOAT key floatkey对应的值增加float数

注意事项:

        在redis中,是采用了字节流进行数据传输,保证了数据的二进制安全,这样可以减少因为客户端和服务端两者之间的编码规则不一致,造成字符出现截断现象

四.Redis的BitMap类型的操作

命令描述
BITPOS key bit start end返回的是key对应的值中从指定的字节序列start到end序列之间第一个出现数值为bit的序列号
BITCOUNT key start end统计key对应的值从序列号start到end之间1出现的个数
SETBIT key offset value针对key对应值二进制表示中序列号为offset上的二进制数值设置成value(value只能为0或1)

BITOP operation destkey key1 key2

表示针对key1和key2,按位与、按位或、按位非(它由operation来确定,也就是operagion只能为and、or等三个值),并把结果存储到destkey之中

五.Redis的String类型及BitMap实际运用场景

  • 有用户系统,需要统计用户登录天数且窗口随机

  • 在进行当天登录送礼物活动的时候,系统需要确定备货的数量,假设该系统中有2亿的用户

总结

    都可以通过bitmap来实现,比传统的用mysql数据库来实现所带来的成本小的多

六.在实际应用Redis中遇到的问题

  • 问题:在当前控制台中执行source /etc/profile 进行环境变量的读取的时候,在当前窗口有效,但关闭再另起一个terminal之后,就失效

解决方案:

     这是因为在每次启动terminal之后,centos都会执行.bashrc中的配置命令,因此,只需要将source /etc/profile 添加至~/.bashrc之中即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C的二次方

您的支持才是我源源不断的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值