redis安装
- 去redis官网下载
- http://download.redis.io/releases/ 选择你喜欢的版本 ,然后wget
- tar vxzf redis-***.tar.gz
- 进入redis目录,执行 make·,这一步是编译;
- 还是在解压之后目录redis目录里面执行安装 make PREFIX=/usr/local/redis install(这里制定了安装的路径)
5.拷贝一份redis.conf配置文件到/usr/local/redis/下面(cp redis.conf /usr/local/redis)
6.启动服务器 ./bin/redis-server ./redis.conf
注意redis.cof中有个bind 127.0.0.1 这个端口的设置,如果链接不上redis,那么将这个参数注释掉,关闭redis,然后再启动。
7.启动客户端./bin/redis-cli或者./bin/redis-cli -h 127.0.0.1 -p 6379 这两种方法都可以
秘密启动:./bin/redis-cli -h 39.104.48.121 -p 6379 -a 123456
redis数据类型
- String String
- hash javaBean(json)
- list LinkedList 链表
- set hashSet
- 有序的set集合
redis中的字符串类型是最基础,最常用的数据类型,value的最大值为512M,字符串在redis中是二进制安全的,不会对二进制数据进行编解码,效率高。编解码只是发生在客户端。
redis共有16个数据库,0 1 2 。。。。15.
切换数据库:select 数据库名称。select 1:切换到1号数据库。
redis常用命令
- String类型常用命令
-
-
- 赋值:set key value;
- 取值:get key;
- 删除:del key;返回0,没有删除,1删除;
- getset key value:返回之前的key的value,然后改变key的value为新的value;
- incr key:将制定的key的value的原子性的递增1,如果该key不存在,其初始值为0,在incr后其值为1.如果value的值不能转成整形,如hello,该操作将执行失败,并返回相应的错误信息。。相当于++i;
- decr key:将制定的key的value原子性的递减1.
- append key value:字符串的追加,如果key不存在创建key,如果存在,追加到value之后。
- incrby key offset
- incrby key offset
-
- Hash常用的命令
key value {name:'xx',age:18}
赋值:
-
- hset key field value 设置一个字段
- hmset key field value field value 设置多个字段
取值
-
- hget key filed:取一个字段的值
- hmget key filed1 filed2:取一个字段的值
- hgetall key :取key里面的所有的key和value
删除
- hdel key filed
- del key:删除(通用)
扩展
- hkey key:获取所有的字段
- hvals key:获取所有的value
linkList常用命令
-
- 添加:
- lpush key values 从左边添加元素 d c b a
- rpush key values 从右边添加元素 a b c d
- 删除
- lpop key 从链表的左边删除元素,返回链表头部的元素。
- rpop key 从链表的右边删除元素,返回链表尾部的元素。
- 取值
- lrange key start end 从链表的左边(头)去数据范围是从start到end。start从0开始。-1表示链表尾部。没有lrange
- 扩展命令
- llen key 返回list的长度
- lrem key count value 左侧开始删除count个值为value的元素,如果count大于0,从头开始删除count个,如果count小于0,从尾开始删除count个元素。如果count为0,则删除所有。(效率不高)
- 替换:lset key index value 从左边开始,找到索引index位置替换为value。(效率不
- 插入:linsert key before|after pivot value :在pivot 元素插入value这个元素。(效率不高)
- rpoplpush list1 list2 从list1的尾部弹出元素,到list2的头部。
- 添加:
hashSet常用命令
常用于两个大数据集合的并集、交集、差集运算。
-
- 赋值:
- sadd key values
- 删除
- srem key values
- 取值
- smembers key 取得所有的成员
- sismember key member 判断集合中是否有member成员,返回0或者1.
- 集合运算
- 差集:sdiff key1 key2 ......返回key1和key2相差的成员。key1中有key2中没有的元素。
- 交集:sinter key1 key2.........返回都有的成员
- 并集:sunion key1 key2......返回所有的成员
- 扩展命令
- scard key 获取成员中的数量。
- srandmember key 随机从集合中取一个成员,抽奖。
- sdiffstore destination set1 set2 将set1和set2的差集存到destination集合中。
- sinterstore destination set1 set2
- sunionstore destination set1 set2
- 有序set集合(专门用于做排行榜)
- 赋值
- zadd key score member score member score member 将所有成员以及该成员的分数按分数升序存放到集合中。
- 取值
- zscore key member 返回member成员的分数
- zcard key 获取集合中的元素的数量
- zrange key start end
- 删除
- zrem key member member 。。。删除指定的成员
- zremrangebyrank key start stop 安装排名范围删除元素
- zremrangebuscore key min max limit offset count 按照分数范围删除元素
- 范围查询
- zrange key start end withscores:获取集合中角标为start-end的成员,withscores表明返回的成员带着分数。
- zrevrange key start end withscores:获取集合中角标为start-end的成员,withscores表明返回的成员带着分数。
- 扩展命令
- zincrby key increment member:设定指定的成员的增加分数,返回值是更改后的分数。
- zcount key min max 获取分数在 min 和max 之间的成员
- zrank key member 返回成员在集合中的排名。索引从小到大。
- zrevrank key member 倒序
- 赋值
- 赋值:
通用redis命令
- keys pattern :获取所有与pattern匹配的key,返回所有与该key匹配的keys.
- del key1 key2...:删除key
- exists key 判读某个key是否存在,返回0和1
- rename key 重命名
- type key 获取指定的值类型。该命令将以字符串的格式返回。如果key不存在则返回none。
- expire key time 设置key的生存时间。单位是秒,设置成功返回1.,如果key过期了,redis则会删除
- ttl key 查看key的生存时间。-1为永久生存,没有设置,-2为不存在了。
- select 数据库名称 切换数据库
- flushdb 清空当前的数据库
- flushall 清空所有的数据库
消息的订阅与发布
- subscribe channel 订阅频道 eg:subscribe mychat ,订阅mychat这个频道。
- psubscribe 批量订阅频道,eg: psubscribe s* 订阅以s开头的的频道
- publish channel content 在指定的频道中发布消息。
redis的事务只是为了批量化执行语句
当其中有一条语句出错了,其他正确的语句也能执行成功。
other
ping 命令测试连接是否存活
echo hehe 输出命令
select 数据库名称 切换数据库
quit 退出客户端
dbsize 返回当前数据的key的数目
info 查看redis的数据 服务端的配置项数据,客户端的配置数据,当前有几个客户端连接数据库
Linux的持久化操作
RDB机制(使用照快照的方式保存所有的数据,适用于内存比较充裕的计算机)
- 正常关机保存
- 设置关键字改变频率满足一定条件
AOF机制(使用日志功能保存数据)
- 每秒同步
- 每修改同步