redis常用命令

1、redis连接命令

auth password                                   验证密码是否正确
echo message                                  打印字符串
ping                                                   查看服务器是否正常运行
quit                                                    关闭当前连接
save                                                   保存key

2、keys键操作

exists key              测试指定key是否存在
del key1 key2….keyN        删除指定key
type key              返回指定key的value类型
keys pattern            返回指定模式的所有key
rename oldkey newkey       改名字
dbsize               返回当前数据路的key数量
expire key seconds         为key指定过期时间
ttl key               返回key的过期剩余秒数(-1永久的key  -2  不存在的key )
select db-index           选择数据库
move key db-index         把key从当前数据库移动到指定数据库
flushdb              删除当前数据库所有key
flushall              删除所有数据库中的所有key
renamenx key1 key2                           改名,如果key2存在,返回0(fail), 若不存在,返回1(OK) nx结尾带都有逻辑判断

3、String类型操作

set key value            设置key对应值为string类型的value
setex key seconds value        设置key对应值为string类型的value,增加到期时间 秒
psetex key millisecond value                  设置key对应值为string类型的value,增加到期时间 毫秒
setnx key newvalue                               当key不存在时,返回1(OK),否则返回0(fail)
strlen key                                                返回长度
mset key1 value1…keyN valueN   一次设置多个key的值
msetnx a a b b                                        原子性,all success  or  all fail
mget key1 …keyN          一次获取多个key的值
incr key               对key的值++操作,并返回新值
decr key              同上,但是做的是–操作
incrby key integer          同incr,加指定值
decrby key integer          同desr,减指定值
incrbyfloat key increment       对key的值增加一个浮点数
append key value          给指定key的字符串追加value
substr key start end          返回截取过的key的字符串值 
getrange key start end        获取存储在key上的值的一个子字符串
getset key newvalue                              先set再get,返回oldvalue,原子性
setrange key offset value      将从start偏移量开始的子串设置指定的值

4、list链表操作(有序,可重复)

lpush key string            在key对应list的头部添加字符串元素             
rpop key                移除最后一个元素(第一个添加的那一个),并返回删除元素
rpush key string
lpop key                                                       移除第一个元素(最后添加的那一个),并返回删除元素
lpush key string
llen key                 返回对应list的长度
lrange key start end           返回指定区间内的元素,0是最后一个元素
ltrim key start end            截取list, 保留指定区间内元素
lindex key 下标             获取列表下标对应的指定元素
lset key index value                                       设置下表为index的值为value
blpop key[key…] time out         删除,并获得该列的第一元素, 或阻塞,直到有一个可用
brpop key[key…] time out         删除, 并获得该列的最后一个元素, 或阻塞,直到有一个可用
rpoplpush source destination       删除列表中的最后一个元素,将其追加到另一个列表
brpoplpush source destination timeout      弹出一个列表的值,将他推到另一个列表,并返回他,直到有一个可用可以模拟队列(先进后出) 和 栈(先进先出)

5、hash散列操作

hdel key field[field…]        删除一个或多个hash的field
hexists key field          判断field是否存在hash中
hget key field           获取hash中field的值
hgetall key            从hash中读取全部的域和值
hincrby key field increment    将hash中指定域的值增加给定的值
hincrbyfloat key field increment  将hash中指定域的值增加给定的浮点数
hkeys key             获取hash 中所有field
hlen key             获取hash中所有字段的数量
hmget key field[field…]      获取hash里面指定字段的值
hmset key field[field…]      设置hash字段值
hset key field value        设置hash里面一个字段的值
hsetnx key field value       设置hash的一个字段,只有这个字段不存在是有效
hstrlen key field          获取hash里面指定field的长度
hvals key             获取hash的所有值
hscan key cursor         迭代hash里面的元素
hsetnx key field value                       当field不存在时,设置成功

6、set集合操作(无序,唯一)

sadd key member         添加一个string元素到key对应的set集合中 
srem key member         从key对应set中移除给定元素
smove p1 p2 member       从p1对应set中移除给定元素并添加到p2对应set中
scard key             返回set的元素个数
sismember key member      判断member是否在set中   1是   0不是
sinter key p1 p2…pN        返回所有给定key的交集
sinter key1 key2                                返回交集
sunion key p1 p2…pN       返回所有给定key的并集
sunion key1 key2                               并集
sdiff key p1 p2…pN        返回所有给定key 的差集
sdiff key1 key2                                     返回两个集合的差集(key1-公共) 
smembers key          返回key对应set的所有元素,结果是无序的
sinterstore destination key [key….] 获取两个集合的交集,并存储在一个关键的结果集
sunionstore destination key [key…] 合并set集合,并将结果存入新的set里面
sdifferstore destination key[key…]  获取队列的差集,并存储在一个新的结果集
srandmember key [count]     从集合中随机获取count个value
spop key                   (删除并返回)一个随机元素(返回的是已经被移除了的)
smove source destination member 移动集合里的一个key到另一个集合

7、sorted set有序集合操作(有序, 唯一)

有时候还可以这样用,在zset里设置所有元素的score为0,就按元素首字母排序(自动补全) 

 zadd key score member      添加元素到集合,元素在集集合中存在则更新应对的score 
 zrem key member         删除指定元素 
 zcount key min max        返回分数范围内的成员变量 
 zincrby key incr member      按照incr幅度增加对应member的score值,返回score值 
 zrank key member         返回指定元素在集合中的排名(下标),集合中元素是按score从小到大排序的 
 zrevrank key member       集合中元素是按score从大到小排序的 
 zrange key start end        从集合中选择指定区间的元素,返回的是有序集合 
 zrevrange key start end      同上,返回结果是按score逆序的 
 zcard key             返回集合中元素的个数
 zscore key member        返回给定元素对应的score 
 zremrangebyrank key min max   删除集合中排名在给定区间的元素 
 zinterstore distination numkeys   相交多个结果集,导致排序的设置存储在一个新的结果集 
 zunionstore destination numberkeys 添加多个排序集合导致排序的设置存储在一个新的结果集,可以实现取得最大值(max),取得最小值(min)

8、redis的基本事务(流水线)

乐观锁: watch只会在数据被其他客户端抢先修改了的情况下通知执行这个命令的客户端,而不会阻止其他客户端对数据进行修改 

discard              丢弃所有multi之后发的命令 
exec               执行所有multi之后发放人命令 
multi               标记一个事务块开始 
unwatch             取消事务命令 
watch key[key…]          锁定key,直到执行了multi/exec命令

9、redis持久化的两种方式

9.1 快照持久化
./redis-cli bgsave 异步快照持久化命令   save操作是在主线程中保存快照的(不推荐)
当执行shutdown命令后,会执行一个save命令,执行完毕之后关闭服务器
当从服务器向主服务器发送一个sync命令来执行一次复制操作,那么主服务器会执行bgsave命令
配置文件快照配置信息 
save 900 1 (900秒内有1次修改备份)
save 300 10 (900秒内有10次修改备份)
save 60 10000 (60 秒内有10000 次修改备份)
1
2
3

9.2 AOF持久化
开启AOF持久化(设置之前所有数据被清空)
开启AOF持久化—>修改配置文件 appendonly yes
AOF备份存储文件—> appendfilename appendonly.aof

appendfsync always                                    
每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用,还有可能影响固态硬盘的寿命
appendfsync everysec                                 
每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
appendfsync no                                          
看心情
1
2
3
4
5
6
AOF备份文件优化处理 ./redis-cli bgrewriteaof

10、 redis主从复制

从服务器(可读)配置文件修改:slaveof (主服务器ip地址和端口号)ip port
从服务器默认禁止写入操作:slave-read-only yes
当3个或3个以上的从数据库连接到主数据库时,主数据库才可以写入:min-slaves-to-write 3
允许从数据库失去连接的最长时间:min-slave2-max-lag 10
slaveof on one 服务器终止复制操作
slaveof host port 服务器开始复制一个新的主服务器
从服务器在进行同步时,会清空自己的所有数据
redis不支持主主复制
主从链:随着读请求操作的重要性明显高于写请求的操作性,增加从服务器,减轻主服务器的负担,从服务器可以有自己的从服务器

11、处理系统故障

遇到系统故障时,redis提供了数据恢复工具:redis-check-aof 和 redis-check-dump

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值