首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何优雅地实现Redis命令setbits与getbits

在之前的文章《如何优雅地使用Redis之位图操作》和《再谈如何优雅地使用Redis之位图操作》中,笔者介绍了关于Redis位图操作的高级应用,其中就讲到了如何优雅地实现getbits。Redis官方提供了getbit命令,其可以获取某个key对应比特位的比特值,而getbits顾名思义就是支持一次性获取多个比特位的比特值的命令,遗憾的是,Redis官方并没有提供getbits命令。在上述2篇文章中,笔者是通过解析字节数组的方式来实现getbits命令的,虽然可以实现,但是却有2个不足之处:1、这种方式实现的getbits命令不是原子性的,因为这种方式实现的getbits命令其实是分2步进行的,先读取字节数组,再解析字节数组,在这2个步骤之间,Redis是可以执行其他命令的,所以可能会出现数据不一致的现象。2、当存储的位图数据空间占用比较大时,一次性读取整个字节数组,会造成Redis服务器阻塞,严重的还会造成客户端内存溢出,虽然可以通过分多次去读取字节数组来避免这个问题,但是这样一来就增加了网络开销,不是特别优雅。

02

Linux-简介篇

什么是Linux Unix Unix是一个强大的多用户、多任务操作系统。 于1969年在AT&T的贝尔实验室开发。 UNIX的商标权由国际开放标准组织(The Open Group)所拥有。 UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。 Linux的概述 Linux是基于Unix的一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。诞生于1991 年10 月5 日。是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成。 Linux的历史 Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统, 所以在1990年底由于个人爱好设计出了LINUX系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统。 Linux系统的应用 服务器系统 Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等; 嵌入式系统 路由器、防火墙、手机、PDA、IP 分享器、交换器、家电用品的微电脑控制器等等, 高性能运算、计算密集型应用。 Linux有强大的运算能力。 桌面应用系统 移动手持系统 Linux的版本 Linux的版本分为两种:*内核版本和发行版本;* 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号 ; 发行版本是一些组织和公司根据自己发行版的不同而自定的 ; Linux的目录结构

05

RH033(3)

搜索文件        逻辑搜索----建立一张表,可能数据不是最新(搜索方式比较单一,这里不能用文件长度和文件所有者来搜索,必须先建立索引)        物理搜索----很慢,但只要在,肯定能找到 数据平均放在磁盘上,为了防止某个扇区使用频繁,所有搜索时磁片不停的转 updatedb----创建一个索引 locate keyword     这个还支持正则表达式,但是一定要先创建索引   file=1  inode+N  blocks inode:存放文件 元数据 元数据:文件名,长度,权限,所有者,INODE编号,BLOCK指针。。。 可以按照各种元素搜索 block:文件体,真正的数据 file=>数据文件,程序文件,目录文件,链接文件,管道文件,设备文件,内存文件 一个文件必然占一个INODE节点,不一定占BLOCK find -name snow.png find -iname snow.png  忽略大小写 find -user joe -group joe find -user u1 find -group g1 and or ! user u1 and group g1 两个都要成立 user u1 or group g1     -o find -perm 755       +至少有这么多权限,是根据每个数字比的 find -siza 1M 1K    +同样是不小于的意思,-是不大于的意思,不包括自己 find -atime     最后时间修改的文件 find -ctime 10  最近10天修改的文件 find -size +1024K -ok gzip {} \;搜到的压缩    gunzip 解压缩*    ok会询问你yes或者no,如果不想询问那么就用exec find -exec cp {} ../bb/{}.bak\; `.'这个提示是ls -a 隐藏文件里蓝色的.   ..  不能进行操作 /var/lib/mlocate/mlocate.db这个文件里面放索引   var下删除任何一个文件都是很危险的,也不能往里面塞垃圾 apache-----------------firefox   wget        /var/www/html/index.html postfix dvecot smb ftp dns dhcp sendmail ssh nis nfs ntpd telnet ---------------------------------client tools netscape---------->Mozzila/firefox    links http://.... wget http://...把指定的页面给抓下来,就是保存页面 wget ftp://..../pub/getme evolution       和outlooks hotmail一样 kmail       thunderbird    上面三个都是邮件客户端,图形化界面 mutt   和mail有点像,有点严,带加密 mail  mail -s "OKOK"   u@163.com   内容     -vs把发邮件的过程写出来 mail 读取  26 telnet 192.168.0.254  25 mail from: rcpt T0: rcpt T0: data telnet 192.168.0.254 110 retr 1 pidgin(MSN,QQ,ICQ,YAHOO,XXXXX) AS---- WS(pidgin) fedoracore   可以和windows  QQ,msn对联 scp  服务器copy winscp 在windows上传文件很方便,临时传文件 rsync   和winscp一样  只复制差异量,就是增量,第二次传会变快 lftp   带颜色,带热键,带命令补全,还能自适应 gftp   图形化ftp clinet get index.html      上传是put binary  既可以下载二进制,也能下载文本 ascii 切回ascii模式,文本用ascii模式,文档,程序要用二进制模式,binary smbclient  windows网络共享 SMB客户端 unix/linux(client)  ----sbm  -----windows smbclient -L 192.168.0.252 mount -t cifs //192.168.0.254/smb  /mnt -o username=

01

VSFTP的黑白名单

1,配置静态IP [root@ftp ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=static ONBOOT=yes HWADDR=00:0c:29:ae:0f:02 IPADDR=192.168.1.10 NETMASK=255.255.255.0 [root@ftp ~]# service network restart [root@ftp ~]# chkconfig network on 2,安装vsftpd软件 [root@ftp ~]# rpm -q vsftpd vsftpd-2.0.5-16.el5 3,调整匿名上传目录权限,并准备下载测试文件 [root@ftp ~]# chown ftp /var/ftp/pub/ [root@ftp ~]# ls -ld /var/ftp/pub/ drwxr-xr-x 3 ftp root 4096 01-13 23:01 /var/ftp/pub/ [root@ftp ~]# tar jcf /var/ftp/ftpconfig.tar.bz2 /etc/vsftpd/ 4,新建测试用户 [root@ftp ~]# useradd u1 [root@ftp ~]# useradd u2 [root@ftp ~]# useradd laya [root@ftp ~]# passwd  u1 [root@ftp ~]# passwd  u2 [root@ftp ~]# passwd  u3 5,修改vsftpd.conf配置文件开放本地用户 [root@ftp ~]# cat /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=NO      当userlist_enable=NO时不考虑黑/白名单,既不对用户的访问造成影响。 tcp_wrappers=YES 6,重新启动vsftpd服务 [root@ftp ~]# service vsftpd restart [root@ftp ~]# chkconfig vsftpd on 7,XP1客户端测试

03
领券