一、Redis 的安装
Linux 系统的操作:
1、解压源码;
2、编译(需要预安装gcc:yum install gcc--c++) make;
3、安装 make PREFIX=/usr/local/redis install;
4、从源文件夹复制redis.conf到安装路径redis;
5、运行 ./redis-server;
6、不推荐前端运行,可修改配置中daemonize为后端运行(daemonize no改为 yes)(./redis-server redis.conf);
7、查看是否运行 ps -ef | grep -i redis;
8、关闭服务端 kill -9 进程(不建议使用);./redis-cli shutdown;
9、使用命令:(get) (set) (keys *) (del)
二、 Jedis 的入门
// 单例操作 @Test public void demo1(){ Jedis jedis = new Jedis("127.0.0.1",6379); jedis.set("name", "test"); String name = jedis.get("name"); System.err.println(name); jedis.close(); } // 连接池操作 @Test public void demo2(){ JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(30); config.setMaxIdle(10); JedisPool jedisPool = new JedisPool(config,"127.0.0.1",6379); Jedis jedis = null; try{ jedis = jedisPool.getResource(); jedis.set("name", "test"); String value = jedis.get("name"); System.out.println(value); }catch(Exception e){ e.printStackTrace(); }finally{ if(jedis != null){ jedis.close(); } if(jedisPool != null){ jedisPool.destroy(); } } }
Ps:连接中的问题:linus防火墙对连接的影响以及对于属性修改
1) 打开linux防火墙6379端口:vim etc/sysconfig/iptables(复制yy,粘贴t,复制已开端口22那行)
2) 重启防火墙:service iptables restart
三、Redis 的数据结构
Redis的数据结构之字符串String常用命令:
set company imooc:设置值
get company :取值
getset company :先获取值在设置值
del company 删除值
incr company 对数字加一
decr company 对数字减一 如果没有设置默认为0,如果是字符串,默认报错
incrby company x,增加x
decrby company x,减去x
append 以字符串的形式相加而不是数字形式相加
Redis的数据结构之存储Hash常用命令:
设置值:hset hash key1 val1
设置多个值:hmset hash key1 val1 key2 val2 = hset hash key1 val1 key2 val2
获取单个key值:hget hash key
获取多个key值:hmget hash key1 key2
删除单个key值:hdel hash key1
删除所有:del hash
判断某个属性是否存在:hexists hash key1
获取所有key和value: hgetall hash
获得属性数量:hlen hash
获取所有key: hkeys hash
获取所有val: hvals hash
指定某个属性增加某个数量: hincrby hash age number
Redis的数据结构之存储list常用命令:
两端添加
lpush listname value1 value2 value3:如果listname不存在则创建listname并从左侧添加,先添加的元素靠后,下标从0开始。如果listname存在则直接从左侧添加
rpush listname value1 value2 value3:从右侧添加,先添加的元素靠前,下标从0开始
查看列表
lrange listname start end:左边查看指定范围内的listname的元素,下标从0开始,如果end为-1代表是最后一个元素
两端弹出
lpop listname:左边弹出listname中的第一个元素。如果listname不存在元素则返回nil,一旦做了弹出操作,被弹出的元素将在listname中消失
rpop listname:尾部(右部)弹出,与lpop同理
获取列表元素个数
llen listname:获取listname中元素的个数,如果listname不存在则返回0
扩展命令
lpushx listname value1 value2...:如果listname存在则进行添加操作,如果listname不存在则添加失败返回0
rpushx listname value1 value2...:与lpushx同理
lrem listname count value:如果count大于0,则从左往右删除count个value;如果count小于0,则从右向左删除count个value;如果count等于0则表示删除所有的value
lset listname index value:将listname中下标为index的值修改为value
linsert listname before listvalue value:在listname中的listvalue前插入一个value
linsert listname after listvalue value:在listname中的listvalue之后插入一个value
rpoplpush listname1 listname2:将listname1中右边的第一个元素进行弹出然后向listname2的左侧进行添加弹出的元素