登录 or

redis整理相关总结

                                                    redis
文件存在磁盘(其中一种是硬盘)中,磁盘操作文件通过1.寻址 ms 2.带宽
内存也是寻址和带宽,但是寻址是ns,带宽也很大

磁盘使用分而治之的方式将数据分解为4k一页,mysql等数据库添加索引也是4k一页的方式,创建索引便于对数据操作
然后内存利用B+T的方式,查询等操作通过B+T去查找索引

关系型数据库建表:必须给出schema
类型:字节宽度
存:倾向于行级存储




linux
1.安装虚拟环境
VMWare workstation


此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。

如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x 可能被禁用。

 (1) 确认 BIOS/固件设置中启用了 Intel VT-x 并禁用了“可信执行”。

 (2) 如果这两项 BIOS/固件设置有一项已更改,请重新启动主机。

 (3) 如果您在安装 VMware Workstation 之后从未重新启动主机,请重新启动。

 (4) 将主机的 BIOS/固件更新至最新版本。

此主机不支持“Intel EPT”硬件辅助的 MMU 虚拟化。

模块“CPUIDEarly”启动失败。

未能启动虚拟机。

2.linux的centenos导入
磁盘分区
sda磁盘分:
1.boot引导程序区(200M)
2.SWAP交换区(2048M)
3.用户区 / fill to maxinum allowable size

3.配置网卡
cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-eth0
删网卡地址
改onboot为yes
改BOOTPROTO=static

IPADDR=192.168.38.5
NETMASK=255.255.255.0
GATEWAY=192.168.38.2
DNS1=114.114.114.114
DNS2=192.168.38.2

esc
SHIFT
wq!
service network restart

ifconfig
ping www.baidu.com

4.克隆多台虚拟机
关机——快照——快照管理器——拍摄快照(base)
克隆 
开启,修改名称sysconfig下的名称和vi ifcfg-eth0删网卡地址,改ipaddr
删文件rm -f /etc/udev/rules.d/70-persistent-net.rules



下载xshell,坑在nslicense.dll
86改83

然后连接ssh root@192.168.38.5
yum install wget
mkdir soft
wget +redis官网下载链接


  • redis使用


1.redis-cli
-p 6379 端口号
-n 1 仓库号

nx:只能新建,有值了就不建了
xx:只能更新,没值没法更新

set k1 hello
set k1 ooxx nx
set k2 hello xx


mset批量设置
mset k1 a k2 kb48

mget批量获取
mget k1 k2

value 的String类型
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> append k1 "world"
(integer) 10
127.0.0.1:6379> get k1
"helloworld"
127.0.0.1:6379> 

字符串
127.0.0.1:6379> getrange k1 5 10
"world"
127.0.0.1:6379> getrange k1 5 -1
"world"
127.0.0.1:6379> getrange k1 0 -1
"helloworld"
127.0.0.1:6379> setrange k1 5 guaguauu
(integer) 13
127.0.0.1:6379> get k1
"helloguaguauu"
127.0.0.1:6379> 
127.0.0.1:6379> strlen k1
(integer) 13

数值
(incr加一)
127.0.0.1:6379> set k2 99
OK
127.0.0.1:6379> type k2
string
127.0.0.1:6379> object help
1) OBJECT <subcommand> arg arg ... arg. Subcommands are:
2) ENCODING <key> -- Return the kind of internal representation used in order to store the value associated with a key.
3) FREQ <key> -- Return the access frequency index of the key. The returned integer is proportional to the logarithm of the recent access frequency of the key.
4) IDLETIME <key> -- Return the idle time of the key, that is the approximated number of seconds elapsed since the last access to the key.
5) REFCOUNT <key> -- Return the number of references of the value associated with the specified key.
127.0.0.1:6379> object encoding k2
"int"
127.0.0.1:6379> get k2
"99"
127.0.0.1:6379> incr k2
(integer) 100
127.0.0.1:6379> get k3
"a"
127.0.0.1:6379> get k2
"100"
127.0.0.1:6379> clear
127.0.0.1:6379> incrby k2 22
(integer) 122
127.0.0.1:6379> get k2
"122"
127.0.0.1:6379> decr k2
(integer) 121
127.0.0.1:6379> decrby k2 21
(integer) 100
127.0.0.1:6379> incrbyfloat k2 0.5
"100.5"
127.0.0.1:6379> incrbyfloat k2 -0.5
"100"


本质是redis就没有decrbyfloat这个命令
数值
场景:抢购秒杀,详情页,点赞,评论数等持久化存储
优点:规避并发下对数据库的事务操作,完全由redis内存操作代替

redis是二进制安全的,只用字节流,不会破坏编码长度
redis-cli  --raw


bitmap

setbit key offset value
127.0.0.1:6379> setbit k8 1 1
(integer) 0
127.0.0.1:6379> get k8
"@"
127.0.0.1:6379> strlen k8
(integer) 1
127.0.0.1:6379> setit k8 7 1
(error) ERR unknown command `setit`, with args beginning with: `k8`, `7`, `1`, 
127.0.0.1:6379> setbit k8 7 1
(integer) 0
127.0.0.1:6379> strlen k8 
(integer) 1
127.0.0.1:6379> get k8
"A"
127.0.0.1:6379> setbit k8 9 1
(integer) 0
127.0.0.1:6379> strlen k8
(integer) 2
127.0.0.1:6379> get k8
"A@"

bitpos key bit [strat] [end] 
bitpos 二进制的数字 所在的字节位start  end
127.0.0.1:6379> clear
127.0.0.1:6379> get k8
"A@"
127.0.0.1:6379> bitpos k8 1  0 0
(integer) 1
127.0.0.1:6379> bitpos k8  1 1 1
(integer) 9

bitcount 有几个1
bitcount key [start] [end]
127.0.0.1:6379> bitcount k8 0 0
(integer) 2
127.0.0.1:6379> bitcount k8 0 1
(integer) 3
127.0.0.1:6379> bitcount k8 1 1
(integer) 1


bitop(与或非) 与全1才1 或有1则1
127.0.0.1:6379> setbit k9 1 1
(integer) 0
127.0.0.1:6379> setbit k9 7 1
(integer) 0
127.0.0.1:6379> get k9
"A"
127.0.0.1:6379> setbit ke 1 1
(integer) 0
127.0.0.1:6379> get k2
"100"
127.0.0.1:6379> get ke
"@"
127.0.0.1:6379> setbit ke 6 1
(integer) 0
127.0.0.1:6379> get ke
"B"
127.0.0.1:6379> bitop and andkey k9 ke
(integer) 1
127.0.0.1:6379> get andkey
"@"
127.0.0.1:6379> bitop or orkey k9 ke
(integer) 1
127.0.0.1:6379> get orkey
"C"

bitmap场景
1.用户系统,统计用户的登录天数,且窗口随机
查用户最后两周登录了几次?

127.0.0.1:6379> setbit root 1 1
(integer) 0
127.0.0.1:6379> setbit root 7 1
(integer) 0
127.0.0.1:6379> setbit root 335 1
(integer) 0
127.0.0.1:6379> setbit root 364 1
(integer) 0
127.0.0.1:6379> strlen root
(integer) 46
127.0.0.1:6379> bitcount root -2 -1
(integer) 1

2.京东618活动需要备货,统计活跃用户
127.0.0.1:6379> setbit 20200401 1 1
(integer) 0
127.0.0.1:6379> setbit 20200402 1 1
(integer) 0
127.0.0.1:6379> setbit 20200402 2 1
(integer) 0
127.0.0.1:6379> setbit 20200403 1 1
(integer) 0
127.0.0.1:6379> setbit 20200403 2 1
(integer) 0
127.0.0.1:6379> bitop or destkey 20200401 20200402 20200403
(integer) 1
127.0.0.1:6379> bitcount destkey 0 -1
(integer) 2

0 个评论

要回复文章请先登录注册