Redis 用法详解
1. 常规命令
系统配置
系统配置文件:redis.windows.conf/redis.conf(linux系统) bind 127.0.0.1 port 6379 daemonize yes # linux 中设置为守护进程,在后台运行不会,不会阻塞CMD命令行 dbfilename dump.rdb # 数据文件 dir/var/lib/redis # 数据文件存储路径 logfile"/var/log/redis/redis-server.log" # 日志文件 database 16 # 默认有16个数据库 slaveof # 主从配置
系统命令
redis-server # 启动服务器 redis-server redis.windows.conf # windows中以该配置文件启动 redis-server redis.conf # LINUX 中以该配置文件启动 redis-cli # 启动客户端
键的操作命令(适用于任何数据类型)
flushall # 清除当前数据库中所有内容 keys * # 查看所有数据的键 keys a* # 查看以a开头的数据库中的键 keys a[1-6] # 以正则匹配键来查询 EXISTS a6 # 查看a6是否存在,存在返回1,不存在返回0 type a6 # 查看a6的值的数据类型 del a1 a2 #删除键为a1和a2的数据 expire a3 10 # 设置a3的过期时间为5秒,5秒后删除 ttl a4 # 查看过期时间,-1 为永久
字符串的操作命令
set a1 234 # 添加键为a1值为234的数据 set a1 234 EX 5 # 添加的数据过期时间为5秒 setex a1 5 234 # 效果与上面相同 mset a1 234 a2 333 a3 haha # mset 一次插入多条数据 get a1 # 查询键为a1的值 mget a1 a2 a3 # 一次查询多条数据的值 append a1 haha # 给a1的值后边追加haha ===> 234haha
哈希值(hash)的操作命令(类似于字典,键为字典的名称)
hset xiaoming height 180 hset xiaoming weight 70kg hset xiaoming age 30 # 分别插入键为小明的身高,体重,年龄三个属性及值 hmset xiaoming score 90 tel 1380000000 # 一次插入小明的多个属性及值 hget xiaoming height # 获取小明的身高属性值 hmget xiaoming height score # 一次获得小明的两个属性值 hkeys xiaoming # 查看小明的各个属性 hvals xiaoming # 查看小明的各个属性的值 hdel xiaoming score # 删除小明的分数的属性值
列表(LIST)的操作命令
lpush l1 a b c aa xf # 从左侧添加,结果相当于:li = [xf,aa,c,b,a] rpush l2 aa bb xx dd # 从右边添加,相当于append lrange l1 0 3 # 查询l1中索引从0到3的4个值 lrange l1 0 -1 # 查询l1中所有的值 linsert l1 after b ok # 在l1中的b后边插入OK lset l1 2 nuuu # 将l1 中索引为2的值修改为nuuu lrem l1 2 aa # 删除l1中前两个值为aa的数据 lrem l1 -2 aa # 删除l1中后两个值为aa的数据 lrem l1 0 aa # 删除l1中所有的值为aa的数据
无序集合(set),集合的数据不能修改
sadd s1 python java php c++ # 增加记录 smembers s1 # 查看s1的数据 srem s1 java # 删除s1中的java
有序集合(zset) , 每个元素有关联的score作为权重
zadd z1 3 lisi 5 wangwu 7 zhaoliu 4 wangmazi 6 lujie # 增加记录,元素前边的数字为对应的score zrange z1 0 -1 # 获取z1的所有值 zrangebyscore z1 3 6 # 查询z1 中score在3-6之间的值 zrem z1 zhaoliu # 删除z1中值为zhaoliu的数据
2. python中redis的使用
from redis import StrictRedis # 1.导入 def demo(): sr = StrictRedis(host='127.0.0.1') # 2.实例化 try: result = sr.set('lisi','19') # 3.通过实例调用redis命令 except Exception as e: return 'error' if __name__=='__main__': demo() # sr.mset({'a':'13','b':'22'}) mset的参数为字典
3. 主从配置
- 主服务器配置文件修改(
redis.windows.conf/redis.conf
)
- bind 192.168.28.44 # 修改本地IP
- port 6379 # 本地端口,默认6379
- 从服务器配置文件修改(redis.windows.conf/redis.conf)
- bind 192.168.28.33 # 修改为本地IP
- port 6379 # 本地端口,如果在一台电脑上配置主从,因为IP一样,应该调整端口不一样
- slaveof 192.168.28.44 6379 # 修改为主服务器的IP和端口
- 分别启动主从服务器,用携带配置文件的命令
- redis-server redis.windows.conf
- 启动客户端
- redis-cli -h 192.168.28.44 -p 6379
通常主写,从读,从服务器默认不可写入
4. 集群创建
- 在各自的服务器创建配置文件,修改7000为对应端口号,绑定各自IP
port 7000 bind 172.16.179.130 daemonize yes pidfile 7000.pid cluster-enabled yes cluster-config-file 7000_node.conf cluster-node-timeout 15000 appendonly yes
- 通过配置文件启动各服务器的REDIS服务
redis-server 7001.conf
- LINUX中将集群服务的模块拷贝到 usr/local/bin/ 目录下方便启动
sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/
- 安装ruby环境
sudo apt-get install ruby
- 创建集群
redis-trib.rb create --replicas 1 172.16.179.130:7000 172.16.179.130:7001 172.16.179.130:7002 172.16.179.131:7003 172.16.179.131:7004 172.16.179.131:7005