发表于: 2017-07-22 20:59:23

1 904


今天完成的事情:

简单了解jedis,了解redis的各种操作命令,整合redis配置方法并加上补充知识


明天计划的事情:

了解完毕redis,开始做任务



遇到的问题: 

这些配置要按什么方式整合入ssm框架中,明天再参考几篇博文和师兄日报,看看能不能找到一份好的例子

然后参照例子输出



收获:

①编译安装:
    1. 使用nick账号上传Redis安装包redis-2.6.14.tar.gz到/software目录。
    2. 进行如下操作,进行安装:
       su - nick//不懂含义
       cd /software//进入目录
       tar -zxvf redis-2.6.14.tar.gz//解压tar包
       cd redis-2.6.14//进入文件夹
       make//编译
       cd src
       make install//不懂这句的必要性
    3. 创建目录:Redis默认安装在/usr/local/bin目录下,现在将可执行文件和配置文件移动到自定义位置。
       mkdir -p /usr/local/redis/bin     //创建新的自定义目录来存放可执行文件和配置文件
       mkdir -p /usr/local/redis/conf     //创建新的自定义目录来存放可执行文件和配置文件
       cd /usr/local/bin                   //进入原来放文件的文件目录
       mv redis-benchmark  redis-check-aof  redis-check-dump redis-cli  redis-server /usr/local/redis/bin          //把这些文件放入新建的自定义文件夹下
       cd /software/redis-2.6.14     //进入redis配置目录
       mv redis.conf /usr/local/redis/conf     //移过去


②redis启动与关闭

启动、关闭:
    1. 启动Redis服务器:并指定配置文件的位置,如下方式时前台启动,会阻塞当前客户端,使用Ctrl + C即可关闭。
       cd /usr/local/redis/bin     //进入功能文件夹
       ./redis-server ../conf/redis.conf          //以前都是只用前面部分,后面的一起用好处是什么暂时不知道
    2. 后台启动:修改redis.conf文件中daemonize为yes即可,使用如上命令再次启动。
       cd /usr/local/redis/conf/
       vi redis.conf     //进入修改daemonize
    3. 进行监控:
       netstat -apn | grep 6379   -- redis启动默认占用6379端口
       ps -ef | grep redis        -- 使用进程查看命令
        kill 31233                 -- 可以进行强制关闭:31233为进程号
    4. 关闭操作:通常使用如下命令,很优雅地进行关闭,而不是KILL
       ./redis-cli shutdown


③redis补充知识

<一>. 客户端操作:
    ./redis-cli    -- 客户端登陆
    set name Nick   -- 进行存储:name为键,Nick为值
    get name      -- 通过key获取value
   <二>. 性能监控:我偷偷地告诉你参数-l(loop)是循环的意思,使用Ctrl + C退出
    ./redis-benchmark -l
   <三>. 为了简化启动/关闭,可编写如下shell脚本:

    1. 定位到用户主目录:cd ~
    2. 启动脚本:

       vi start-redis.sh
       cd /usr/local/redis/bin   
       ./redis-server ../conf/redis.conf
    3. 关闭脚本:

       vi stop-redis.sh
       cd /usr/local/redis/bin

       ./redis-cli shutdown
    4. 客户端连接脚本:

       vi connect-redis.sh
       cd /usr/local/redis/bin
       ./redis-cli
    5. 可执行权限:

      chmod +x start-redis.sh

      chmod +x stop-redis.sh
      chmod +x connect-redis.sh
   <四>. 最后,你可以很犀利的启动、连接、关闭: 
     ./start-redis.sh
     ./connect-redis.sh
     ./stop-redis.sh


④redis实用操作命令

[基本操作]
1添加记录:set name ljm
2获取记录:get name
3递增递减:针对整数类型,仍然使用类似于字符串的操作方式:并且可以进行递增,递减
set age 21
incr age     //21变成22
decr age     //22变成21
4在key不存在时才添加:setnx name Nick     //暂时没看懂
5:设置时效时间:以避免数据量的持续增长.如设置过期时间为5s
setex name 5 Bill
上述命令等价于
set name Bil
expire name 5
6:删除key:
del name          //删除name这个key,如果name存在显示1删除成功,反之显示0
7:查看key是否存在:
exists name     
8:key的存活时间
ttl name          //如果未设置,默认为-1(永久)
9:查询所有的key
keys *
10:模糊匹配
key name*          //name为你想要查找的内容
11:将key移动到数据库1中

move name 1


[列表操作]可以使用列表(list)来模拟队列(queue)/堆栈(stack).
1:添加元素:给列表userList从右边压入字符串ljm
rpush userList ljm
2:移除元素:从userList左侧移除第一个元素
lpop userList
3:列表范围:如下命令获取从0(左侧起始位置)到-1(右侧最后一个位置)之间的所有元素,并且包含起始位置的元素
lrange userList 0 -1
4:设置元素:设置userList位置1处为新值,对包含空格的字符串使用引号括起来
lset userLIst 1 "Nick Xu"          //不太懂
5:列表长度:
llen userList
6:裁剪列表:执行如下命令后,列表userList只包含原始列表从位置1到3的连续元素

ltrim userList 1 3


[集合操作]集合中元素不能重复,并且集合是无序的
1:添加元素:可同时添加多个元素
sadd fruit watermelon
sadd student ljm ck wzy
2:查看集合中的所有元素
smembers fruit
3:移除元素:
srem studnet ck
4:集合长度:返回集合中包含的元素的个数
scard student 
5:集合中是否包含元素
sismember student lzn
6集合的运算:如下命令返回集合fruit和student的并集(sunion).此外还有交集(sinter),差集(sdiff)运算

sunion fruit student


[有序集合]sorted set
1:添加元素:根据第二个参数进行排序
zadd user 23 james
2:重复添加:存在相同的value,权重参数更新为24

3:集合范围:找到从0~-1的所有元素,并且是有序的


[哈希表操作]
1:添加元素:给哈希表china添加键为guangxi,值为liuzhou的成员
hset china guangxi liuzhou
2:获取元素:获取哈希表china键guangxi所对应的value值
hkeys china
3:返回哈希表所有的value:
hvals china
4:返回哈希表的所有value:
hvals china

ps:感觉和普通功能没什么区别?


[其他命令]
1:获取服务器信息
info
2:获取特定信息:
info keyspace
3:选择数据库
在redis中默认有16个数据库(编号0~15,)默认是对0号数据库进行操作
select 1     //对1号数据库进行操作
4:当前数据库中key的数据个数
dbsize
5:清空当前数据库
flushdb
6:清空所有的16个数据库
flushall
7:测试连接:
ping     //返回pong即为连接畅通
8:退出客户端:
quit
exit
9:关闭服务器
shutdown



⑤jedis

使用jedis提供的java api对redis进行操作,是redis官方推崇的方式
使用jedis提供的对redis的支持也最为灵活,全面
不足之处在于编码的复杂度较高
maven项目去添加jedis配置到pom.xml文件即可
开始使用:
1:定义连接:redis暂时不要设置登陆密码
Jedis jedis=new Jedis("120.25.198.68");
2:进行键值存储:
jedis.set("country", "China");
3:获取value值:
String country=jedis.get("country");
4:删除key:

jedis.del("country");


[使用连接池]
1:添加依赖包commons-poor.jar     注意:不要选择高版本,以免不必要的错误
2:配置文件:redis.properties
redis.host=120.25.198.68     #redis服务器地址
redis.port=6379               #服务端口
redis.timeout=3000          #超时时间:单位ms
redis.password=123456         #授权密码

redis.pool.maxActive=200     #最大连接数:能够同时建立的"最大链接个数"
redis.pool.maxIdle=20          #最大空闲数:空闲链接数大于maxIdle时,将进行回收
redis.pool.minIdle=5               #最小空闲数:低于minIdle时,将创建新的链接
redis.pool.maxWait=3000          #最大等待时间:单位ms

redis.pool.testOnBorrow=true     #使用连接时,检测连接是否成功
redis.pool.testOnReturn=true     #返回连接时,检测连接是否成功

3:加载属性文件:redis.properties
ResourceBundle bundle=ResourceBundle.getBundle("redis");

4:创建配置对象:
JedisPoolConfig config=new JedisPoolConfig();
String host=bundle.getString("redis.host");
...
config.setMaxActive(Integer.valueOf(bundle.getString("redis.pool.maxActive")));
...
config.setTestOnBorrow(Boolean.valueOf(bundle.getString("redis.pool.testOnBorrow")));

5:创建jedis连接池
JedisPool pool=new JedisPool(config,host,port,timeout,password);



返回列表 返回列表
评论

    分享到