redis

来源:互联网 发布:json对象转化成数组 编辑:程序博客网 时间:2024/05/22 21:42
-1代表最后
string类型
set key value会覆盖


get key value


getset key value
获取旧值,设置新值


getrange key x,y
获取key的value子字符串下标为x-y


mget
一次性获取多个key的值,如果单个key不存在单个返回nil


setnx key value
设置,如果不存在同set,存在返回一个1,不覆盖
setex key time value
设置一个key value保存时长为time秒


setrange key num newString
从第num下标开始替换后面的字符串为newString
如果newString的长度比替换节点到末尾的字符子串小,
只替换newString的长度,后面保留


mset key1 value1 key2 value2 。。。。
一次设置多个key的值,成功返回ok,失败返回0


msetnx
一次性设置多个key的值,不会覆盖已经设置的值,返回0都设置失败
 
incr key
对key的值做++操作,返回新值
如果key不存在,会设置key,value为0+1


incrby key num(-num)
对key增加num值


decr key
对key--


decrby key num(-num)
对key的值-指定值


与incr想对立,功能一样


append key value
给指定key的字符串追加value,返回新字符串长度
 
strlen
获取指定key的value值得长度






================================
hashes类型
redis hash是一个String类型的field和value的映射表。
他的添加、删除操作都是0(1)(平均),适用于存储对象。


hset table field1 value
设置一个hash表,标明为table,一个字段为field1,值为value


hget table filed
获取hash表table中的filed字段的value值


hsetnx
用法同setnx,获取值,如果key不存在创建,存在返回0


hmset table filed1 value1 filed2 value2
同时设置多个filed


hmget
获取多个字段值


hincrby table filed num
对某字段增加num


hexists table filed
查看table中的filed字段是否存在,返回1,0


hlen table
返回table中所有的filed字段的个数


hdel table filed
删除table中filed字段


hkeys table
返回table中所有的字段名


hvals table
返回table中所有的value值


hgetall table
获取table中所有的field和value




==================================
lists类型
list是一个链表结构,主要功能是push、pop,获取一个范围
的所有值等。在redis中list是一个双向链表,可做栈也可做队列


lpush mylist value(value2。。。。)
从头部压入一个元素(栈)


lrange mylist start end
在mylist中从start取到end
0 -1 表示从头取到尾


rpush mylist value(value2...)
表示mylist尾部压入一个元素(队列)


linsert mylist before/after value1 value2
在mylist中的value1的前/后插入一个value2
 
lset mylist num value
替换mylist中下标为num的值替换成value


lrem mylist  num value
从key为mylist的list中删除num个和value相同的元素


ltrim mylist start end
保留指定key的下标值范围类的数据


lpop mylist
表示从key为mylist的list的头部弹出一个元素
返回弹出的元素


rpop mylist
.....尾部弹出一个元素


rpoplpush list1 list2
从第一个list的尾部移除元素并添加到第二个list的头部


lindex mylist num
返回key为mylist中下标为num的元素


llen mylist
返回key为mylist的元素个数






==================================
sets类型
set是集合,是String类型的无序集合,通过hash table实现
key取交集,并集,差集,通过此操作可以是下sns的好友推荐
和博客的标签功能


sadd myset value
向myset中添加元素


smembers myset
查看myset中的元素


srem myset value
删除myset中的value元素


spop myset
随机返回并删除名为myset的set中的一个元素


sdiff myset1 myset2
返回所给定的key集合与第一个集合的差集
myset2在myset1中不包含的元素


sdiffstore myset1 myset2 myset3
将myset2 myset3的差集存到myset1中


sinter myset1 myset2
返回所给定的key的交集


sintersotre myset1 myset2 myset3
将myset2和myset3的交集存到myset1中


sunion myset1 myset2
取myset1和myset2的并集


sunionsotre myset1 myset2 myset3
取出myset2和myset3的并集存到myset1中


smove myset1 myset2 value
从myset1中移除value,添加到myset2中


scard myset
返回key名为myset的元素个数


sismember myset value
测试value是否为myset集合的元素


srandmember myset
随机返回key为myset的一个元素,不删除




=================================
sorted sets类型(有序集合)zset
set的升级版本,在set中添加了顺序,


zadd myzset num value
像key为myzset中添加一个value,顺序为num
如果myzset中存在value,更新顺序为num


zrange myzset start end withscores
查询key为myzset中索引为start到end的元素,带顺序号


zrem myzset  value
删除key为myzset中的value元素


zincrby myzset num value
把key为myzset的value的顺序值增加num,如果value不存在
则保存value并设置顺序为num


zrank myzset value
返回key为myzset中value的索引(通过顺序值由小到大排序)


zrevrank myzset value
返回key为myzset中的value的索引(通过顺序值由大到小排序)


zrevrange myzset start end withscores
功能痛zrange排序为降序


zrangebyscore myzset start end withscores
返回key为myzset中顺序号在start到end范围类中的元素


zcount myzset start end
返回key为myzset中顺序号在start到end范围类中元素的个数


zcard myzset
返回key为myzset中所有元素的个数


zremrangebyrank myzset start end
删除元素在给定索引范围的元素


zremrangebyscore myzset start end
删除元素在给定顺序范围的元素




+++++++++++++++++++++++++++++++++++++++
redis常用命令
一:键值相关命令
keys *查询所有的key
keys my*查询以my开头的key


exists key
确认key是否存在


del key
删除一个key


expire key num
设置key的过期时间为num秒
ttl key查看key的过期时间还剩多少秒


select 0选择0数据库(0-15,默认就是0数据库)
move key 1把key移动到1数据库


persist key
移除key的过期时间


randomkey
随机返回数据库中的一个key


rename key newkey
重命名key为newkey


type key
查看key的类型




++++++++++++++++++++++++++++++
服务器相关命令
ping
测试连接是否存活


echo
在命令行大于一些内容


select
选择数据库,redis数据库编号0~15,可以选择任意数据库


quit(exit)
退出reids


dbsize
返回当前数据库中key的数目


info
获取服务器的信息


config get
实时传储收到的请求(获得相关配置的值,全部用*)


flushdb
删除当前数据库中的所有key


flushall
删除所有数据库中的所有key


+++++++++++++++++++++++++++++++++++++
redis高级应用
1.安全性
修改配置文件requirepass 密码
进入客户端后用auth 密码 授权
或者登录客户端时候 -a 密码 授权




2.主从复制(从同步主服务器数据库)
可以通过主从复制允许多个“从服务器slave”拥有和“主服务器master”相
同的数据库副本,主复制到从
(1)master可以拥有多个slave
(2)多个slave可以连接同一个master外,还可以连接其他slave
(3)主从复制不会阻塞master,在同步数据时masterkey继续处理
client请求
(4)提高系统的伸缩性
配置:需要在slave的服务器中修改配置文件
slaveof 主机ip 端口(如:slaveof 192.168.0.106 6379)
masterauth 密码(主机密码)
通过info可以查看当前服务器是主还是从的角色






3.事务处理
multi开启事务标识
exec顺序事务中的所有命令
(redis的整个事务无法回滚)


discard取消事务(事务回滚)
watch命令会监视给定的key,当exec的时候如果监视的key从调用
watch后发生过变啊,整个事务会失败。也可以多次调用watch监控
多个key。




4.持久化机制
redis是一个支持持久化的内存数据库,需要经常将内存中的数据保存到
硬盘来保证持久化。
redis支持两种持久化方式:
(1)snapshotting(快照)默认(dump.rdb)
配置文件中配置save time num,在time秒钟如果有num次key的操作保存一次
(2)Append-only file(缩写aof)的方式
把每次操作命令追加保存到appendonly.aof文件中,重启redis加载读取
配置文件中的appendonly yes(默认为no)
同步方式3种,appendsync always每次操作都进行持久化操作、everysec每秒、no依赖系统缓存决定




5.发布订阅消息
pub/sub是一种消息通信模式
订阅者通过subscribe和psubscribe订阅
发布者通过publish相redis server发布消息
订阅该信息类型的全部client都会收到此消息




6.虚拟内存的使用
把经常不用的数据放到磁盘上,空出内存空间
原创粉丝点击