Python存储系统(Redis)
存储系统数据缓存一般会使用三个模块:Mongodb,redis,memcache。其中memcache是轻量级缓存,只能将数据保存到内存中,redis可以配置数据保存在内存还是硬盘。 其主要用途有:不同应用(语言)中共享数据 CentOS安装Redis安装 yum install epel-release yum install redis 开启服务: systemctl start redis 设置密码: 编辑文件:/etc/redis.conf #requirepass foobared去掉注释,foobared改为自己的密码 requirepass newpasswd #这句表示该密码为newpasswd 保存并重启redis服务 设置密码后的命令行登入方式:redis-cli -h 127.0.0.1 -p 6379 -a newpasswd 设置远程端可访问: 因为redis服务默认不提供远程操作 编辑文件:/etc/redis.conf 将bind 127.0.0.1 改为 bind 0.0.0.0 保存并重启redis服务 设置防火墙开放端口 firewall-cmd --zone=public --add-port=6379/tcp --permanent 重启防火墙 systemctl restart firewalld 命令行基本操作操作连接 redis-cli 通过键值对设置值 set key value [EX seconds] [PX milliseconds] [NX|XX] 其中ex表示保存的秒数,px表示毫秒数,nx表示key不存在时才操作,xx表示key存在时才操作 set keyx valuex 设置值且保存5秒 set keyx1 valuex1 ex 5 一次性设置多个 mset key1 value1 key2 value2 设置新值并返回原值 getset key1 value1111 字符串切片,如"value1"经过下面结果为:"val" getrange key1 0 2 退出 exit 通过键值对获取值 get keyx 查看所有的键 keys * 查看带有e字符的所有key keys *e* 一次性获取多个 mget key1 key2 通过键值对删除值 del key [key ...]
判断键是否存在,返回0或1 exists key1 重命名 rename key1 key2 跳转到另一个空间(db) 总共有[0,15]个,默认为0 select 1 移动键值内容 move key db 自增自减 自增: incr keycunx #执行一次增加一 自减 decr keycunx 执行一次减去一
二进制位操作: 如果把设置值的offset匹配成用户id,则可以实现高效的用户登入判断,设置1为登入,0为非登入 设置值: setbit key offset value 设置二进制offset位的值为value setbit dongbit 2 1
setbit dongbit 1000 1
取出值为1的位个数: bitcount dongbit 输出2
获取二进制第几位的值: getbit dongbit 10 输出0 getbit dongbit 2 输出1 Hash操作: 设置数据 hset key field value 其中key总键,field为子键,value为子键的值 hset user name dongxiaodong
hset user passwd pdongdongdong
获取到所有数据: hgetall user
hkeys user
hvals user
获取到指定数据: hget user passwd 批量设置: hmset user1 name dong1 passwd pdong111 判断子键是否存在,存在返回1,否则为0 hexists user1 passwd 列表操作: 设置 rpush key value [value ...] #一个key可以保持多个value,先入先出,如果需要先入后出则使用rpush rpush listdong dong1 dong2 dong3 取值: lrange key start stop 取key的值需要确定起始和结束位置 lrange listdong 0 -1 取所有 lrange listdong 1 1 确定某个 集合操作(值不可重复): 设置 sadd aggdong dong1 dong2 33 dong1 取值 smembers aggdong 获取个值数 scard aggdong Python基本操作安装模块 pip3 install redis 简单的连接: 1 连接方法一: 2 每次操作都是一个连接,如get、set等,一个就是一个网络连接,所以不可取 3 conn=redis.Redis(host="192.168.1.195",port=6379,password="rpdong") 4 5 连接方法二(连接池) 6 poolx=redis.ConnectionPool(host="192.168.1.195",password=rpdong") 7 conn=redis.Redis(connection_pool=poolx) 8 9 设置数据 10 conn.set(keyxvaluexx11 取出数据 12 print(conn.get(")) 键值对操作补充: 设置数据, conn.set(发布和订阅: |