Redis--常用命令,
-- redis-- 服务端
开启
sudo service redis start
重启
sudo service redis restart
停止
sudo service redis stop
查看服务
ps ajx | grep redis
-- 客户端
redis-cli --raw 解决中文乱码
登录 redis-cli
ping 判断服务端是否活着
选择数据库
select 0
-- string
-- 增加、修改
如果设置的键不存在则为添加,如果设置的键已经存在则修改
设置键值
set key value
例1:设置键为'py1'值为'gj'的数据
set 'py1' 'gj'
-- 获取
获取:根据键获取值,如果不存在此键则返回nil
get key
例5:获取键'py1'的值
get py1
-- 设置键值及过期时间,以秒为单位
setex key seconds value
例2:设置键为'py2'值为'hr'过期时间为3秒的数据
setex py2 10 hr
-- 设置多个键值
mset key1 value1 key2 value2 ...
例3:设置键为'py3'值为'dx'、键为'py4'值为'xd'、键为'py5'值为'nd'、键为'py6'值为'bg'的数据
mset py3 dx py4 xd py5 nd
-- 根据多个键获取多个值
mget key1 key2 ...
例6:获取键'py3'、'py4'、'py5'、'py6'的值
mget py3 py4 py5
-- 追加值
append key value
例4:向键为py1中追加值' haha'
append py1 hr
help get 查看某个命令使用方法
help @string 查看某个列席使用方法
-- 删除
del key
del py1
-- 键命令
-- 查找键,参数支持正则表达式
keys pattern
例1:查看所有键
keys *
keys p*
-- 判断键是否存在,如果存在返回1,不存在返回0
exists key1
例3:判断键'py1'、'py2'是否存在
exists py3
-- 查看键对应的value的类型
type key
例4:查看键'py1'的值类型,为redis支持的五种类型中的一种
type name
-- 设置过期时间,以秒为单位
如果没有指定过期时间则一直存在,直到使用DEL移除
expire key seconds
例6:设置键'py1'的过期时间为10秒
expire name 10
-- 查看有效时间,以秒为单位
-2 代表过期或者key不存在,-1 代表key永久
ttl key
例7:查看键'py2'的有效时间
ttl name
-- hash
-- 增加、修改
设置单个属性
hset key field value
例1:设置键'py2'的属性'name'为'hr'
hset py2 name hr
-- 获取一个属性的值
hget key field
例4:获取键'py2'属性'name'的值
hget py2 name
-- 获取指定键所有的属性
hkeys key
例3:获取键'py3'的所有属性
hkeys py2
-- 设置多个属性
hmset key field1 value1 field2 value2 ...
例2:设置键'py3'的属性'name'为'dx'、属性'gender'为'1'、属性'birthday'为'2017-1-1'
hmset py6 name dx gender 1 birthday 2010-1-1
-- 获取多个属性的值
hmget key field1 field2 ...
例5:获取键'py3'属性'name'、'gender'、'birthday'的值
hmget py6 name gender
-- 获取所有属性的值
hvals key
例6:获取键'py3'所有属性的值
hvals py6
-- 删除
把hash所有的属性删除,此key也自动被删除
删除整个hash键及值,使用del命令
删除属性,属性对应的值会被一起删除
hdel key field1 field2 ...
例7:获取键'py3'的属性'gender'、'birthday'
hdel py6 gender name
-- 增加
在左侧插入数据 相当于python中的list的insert(0)
lpush key value1 value2 ...
例1:从键为'py11'的列表左侧加入数据'dx'、'xd'
lpush py11 dx xd
-- 返回列表里指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第一个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
lrange key start stop
例4:获取键为'py11'的列表所有元素
lrange py11 0 -1
-- 在右侧插入数据
相当于python中的list的append
rpush key value1 value2 ...
例2:从键为'py11'的列表右侧加入数据'nd'、'bg'
xd dx nd bg
rpush py11 nd bg
-- 在指定元素的前或后插入新元素
linsert key before或after 现有元素 新元素
例3:在键为'py11'的列表中元素'nd'前加入'zbt'
linsert py11 before dx zb
-- 修改
设置指定索引位置的元素值
索引从左侧开始,第一个元素为0
索引可以是负数,表示尾部开始计数,如-1表示最后一个元素
lset key index value
例5:修改键为'py11'的列表中下标为1的元素值为'xidu'
lset py11 2 xidu
-- 删除
删除指定元素
将列表中前count次出现的值为value的元素移除
count > 0: 从头往尾移除
count < 0: 从尾往头移除
count = 0: 移除所有
lrem key count value
例6.1:向列表'py12'中加入元素'h0'、'h1'、'h2'、'h0'、'h1'、'h3'、'h0'、'h1'
rpush py12 h0 h1 h2 h0 h1 h3 h0 h1
lrem py12 2 h0
-- set
-- 增加
添加元素
sadd key member1 member2 ...
例1:向键'py21'的集合中添加元素'yg'、'xln'、'yzp'
sadd 'py21' 'yg' 'xln' 'yzp'
sadd py21 yg xln yzp
-- 获取
返回所有的元素
smembers key
例2:获取键'py21'的集合中所有元素
smembers py21
-- 删除
删除指定元素
srem key member
例3:删除键'py21'的集合中元素'yzp'
srem py21 yzp
-- sorted_set
-- 增加
添加
zadd key score1 member1 score2 member2 ...
例1:向键'py31'的集合中添加元素'gj'、'hr'、'yg'、'xln',权重分别为1、5、8、3
zadd py31 1 gj 5 hr 8 yg 3 xln
-- 获取
返回指定范围内的元素
start、stop为元素的下标索引
索引从左侧开始,第一个元素为0
索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素
zrange key start stop
例2:获取键'py31'的集合中所有元素
zrange py31 0 -1
-- 返回score值在min和max之间的成员
zrangebyscore key min max
例3:获取键'py31'的集合中权限值在4和9之间的成员
zrangebyscore py31 4 9
-- 返回成员member的score值
zscore key member
例4:获取键'py31'的集合中元素'yg'的权重
zscore py31 yg
-- 删除
删除指定元素
zrem key member1 member2 ...
例5:删除集合'py31'中元素'yg'
zrem py31 yg xln
-- 删除权重在指定范围的元素
zremrangebyscore key min max
例6:删除集合'py31'中权限在4、9之间的元素
zremrangebyscore py31 4 9
Redis集群配置
-- 需要两台机器
主服务器 192.168.133.133
修改/etc/redis/redis.conf
bind 192.168.133.133
重启redis
从服务器 192.168.133.132
修改/etc/redis/redis.conf
bind 192.168.133.132
slaveof 192.168.133.133 6379
重启redis
-- 集群
服务器 192.168.133.133
3个redis服务
redis-server 7000.conf
redis-server 7001.conf
redis-server 7002.conf
服务器 192.168.133.132
3个redis服务
redis-server 7003.conf
redis-server 7004.conf
redis-server 7005.conf
redis-trib.rb create --replicas 1 192.168.133.133:7000 192.168.133.133:7001 192.168.133.133:7002 192.168.133.132:7003 192.168.133.132:7004 192.168.133.132:7005
Using 3 masters:
192.168.133.133:7000
192.168.133.132:7003
192.168.133.133:7001
Adding replica 192.168.133.132:7004 to 192.168.133.133:7000
Adding replica 192.168.133.133:7002 to 192.168.133.132:7003
Adding replica 192.168.133.132:7005 to 192.168.133.133:7001
M: 53c2529efca2776dddbec3d2429fd80d02e93880 192.168.133.133:7000
slots:0-5460 (5461 slots) master
M: 3aab869c83e1c8751d482e7ec970a935c3b9bca5 192.168.133.133:7001
slots:10923-16383 (5461 slots) master
S: 803253c6455fb7b7190ee90cac13819062d449e6 192.168.133.133:7002
replicates 96d7c861d7eed880999ae08fa1d74c56f7c0fe2f
M: 96d7c861d7eed880999ae08fa1d74c56f7c0fe2f 192.168.133.132:7003
slots:5461-10922 (5462 slots) master
S: 4476a061ff2990399e77a7b39dad2f1ad1dcf55b 192.168.133.132:7004
replicates 53c2529efca2776dddbec3d2429fd80d02e93880
S: 3b2a24132cdfd2a091a42e08461888589ffe05f6 192.168.133.132:7005
replicates 3aab869c83e1c8751d482e7ec970a935c3b9bca5