Redis入门学习
»Redis目录:
在Linux上安装redis
- 安装gcc编译环境
yum install gcc--c++
- 将redis的源码包上传到linux
- 解压缩
- 进入redis加压缩后的源码目录,有一个Makefile文件,使用make命令进行编译。
- 使用
make install PREFIX=/usr/local/redis
将redis安装到 /usr/local/redis 目录下
至此,redis已经安装完毕
启动redis
- 将redis源码目录下的redis.conf文件复制到安装的目录下
cp redis.conf /usr/local/redis/bin/
- 修改bin目录下的redis.conf文件
daemonize yes
- 在bin目录下使用命令启动redis
./redis-server redis.conf
至此,成功启动redis
使用redis客户端连接redis
- 连接
./redis-cli -h 192.168.25.129 -p 6379
连接指定IP地址、指定端口号的redis
- 关闭连接
./redis-cli shutdown
使用该命令会关闭redis
redis的基本操作
redis使用键值对来存储数据,似乎使用的是hash的算法,所以可以根据键很快的查询到值,而redis里面的值有五种基本数据类型,string、hash、set、list、sortset
1.string
set str1 1 //添加一个key为str1,值为1的键值对
get str1 //取出key为str1的值 此时输出"1"
keys * //查看所有的key 此时输出"str1"
incr str1 //将str1的值加1 此时输出"1"
decr str1 //将str1的值减1 此时输出"1"
值得注意的是,redis里面所有的值都是字符串类型的
2.hash
hash里面的value是一个map,即一个key对应一个map
hset hash1 key1 1 //添加一个key为hash1,value为 {key="key1",value="1"}的键值对
hset hash1 key2 2 //添加一个key为hash1,value为 {key="key2",value="2"}的键值对
hget hash1 key1 //输出1
hget hash1 key2 //输出2
3.set
值为set类型的话,那么同一个键里面的值是不能重复的,会自动去重,并且值没有顺序
sadd set1 1 1 1 1 2 3 4 2 //实际上只插入了 1 2 3 4四个数据
smembers set1 //输出 1 2 3 4
spop set1 //随机输出一个值,并且将该值删除
4.list
值为有顺序的集合
lpush list1 4 3 2 1 //创建一个key为list1的键,他的值为1 2 3 4 左插法
rpush list1 5 6 7 8 //又插法
lrange list1 0 -1 //从左到又输出list1的值,1 2 3 4 5 6 7 8
5.sortset
sortset与set类似,只不过值有排序,创建值的时候需要给每个值一个分数。性能很低
6.设置key的过期时间
EXPIRE str1 60 //设置str1经过60s后过期
ttl str1 //查看str1还有多久过期
为正数的话则表示过期时间,
为-1则表示永不过期,
为-2则表示没有这个值
PERSIST str1 //清除str1的过期时间,即不过期
搭建redis集群
集群中每一节点都是互联的,客户端通过与集群中任意节点相连即连入集群,节点一共最大为16384个,因为集群通过算法将所有节点映射到0-16383上,来提高可用性。每个集群至少需要3个节点,每个节点最好有备份,因为一个节点挂了会导致整个集群挂掉。
1.使用ruby脚本搭建集群,需要安装ruby环境
yum install ruby
yum install rubygems
2.创建六个redis文件夹,可以将之前安装的redis目录下的bin复制六份,分别为 redis01,redis02,redis03,redis04,redis05,redis06, 并且删除cof,rdb文件。
3.修改每个redis.conf文件里面的端口号,不能重复,可以为7001-7006,然后将cluster-enable yes前的注释去掉
4.将redis-3.0.0.gem文件拷贝到linux中,使用gem install redis-3.0.0.gem命令安装依赖包。
5.将redis文件夹src下的redis-trin.rb文件拷贝到redis-cluster目录下
6.启动每一个redis,可以通过创建一个批处理文件
vim start-all.sh
cd redis01
./redis-server redis-conf
cd ../
cd redis02
./redis-server redis-conf
cd ../
cd redis03
./redis-server redis-conf
cd ../
cd redis04
./redis-server redis-conf
cd ../
cd redis05
./redis-server redis-conf
cd ../
cd redis06
./redis-server redis-conf
cd ../
然后执行该批处理文件
./redis-trib.rb create --replicas 1
192.168.25.128:7001
192.168.25.128:7002
192.168.25.128:7003
192.168.25.128:7004
192.168.25.128:7005
192.168.25.128:7006
至此,集群搭建完毕。
在Java编程连接redis
使用的是以下三个对象
- Jedis:创建单个连接
- JedisPool:创建一个连接池
- JedisCluster:连接集群
API都较为简单