Redis安装与Java简单操作

本片文章只是简单描述

参考博客:http://futeng.iteye.com/blog/2071867
Redis官网:http://redis.io/download
其实官网已经给出下载安装步骤啦

$ wget http://download.redis.io/releases/redis-3.2.3.tar.gz
$ tar xzf redis-3.2.3.tar.gz
$ cd redis-3.2.3
$ make

但是在运行的时候,要加载自己修改过的配置文件,并且是后台运行&

./src/redis-server /srv/redis-3.2.3/redis.conf & 

之后Ctrl +C 退出
redis 客户端使用:

./src/redis-cli

简单操作:

127.0.0.1:6379> set hello 12345
OK
127.0.0.1:6379> get hello
"12345"

以上只是本机启动啦!但并不能远程访问:
还需要修改配置文件(在Redis根目录下):

vim redis.conf

修改如下配置:

bind 127.0.0.1  这个意思是指定某个IP可以访问,把它注释掉
protected-mode yes 这个意思是开启保护模式,把它改为no

以上操作只是为了方便学习,实际部署中是不行的
然后需要kill 掉redis线程

[root@localhost redis-3.2.3]# ps -ef|grep redis
root      1976  1959  0 13:33 pts/0    00:00:00 ./src/redis-server *:6379
root      1985  1959  0 13:41 pts/0    00:00:00 grep --color=auto redis
[root@localhost redis-3.2.3]# kill -9 1976

然后重新启动

./src/redis-server /srv/redis-3.2.3/redis.conf &

之后Ctrl +C 退出
在本机电脑直接 telnet [ip] [端口]

qiufeihudeMBP:~ QiuFeihu$ telnet 192.168.99.105 6379
Trying 192.168.99.105...
Connected to 192.168.99.105.
Escape character is '^]'.
get hello
$3
123

Java操作
Maven配置文件添加:

    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.7.3</version>
    </dependency>

Java代码:

 Jedis jedis = new Jedis("192.168.99.105", 6379);
 jedis.set("name", "小硕");
 System.out.println("运行结果:"+jedis.get("name"));

运行结果:

运行结果:小硕

详细操作:

key - value 存储结构


    @Test
    public  void testString(){
        Jedis jedis = new Jedis("192.168.99.105", 6379);
        //-----添加数据----------
        jedis.set("name", "小红");
        System.out.println(jedis.get("name"));

        jedis.append("name", "小白"); //拼接
        System.out.println(jedis.get("name"));

        jedis.del("name");  //删除某个键
        System.out.println(jedis.get("name"));
        //设置多个键值对
        jedis.mset("name", "小明", "age", "23", "qq", "476777XXX");
        jedis.incr("age"); //进行加1操作
        System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq"));
    }

运行结果:

小红
小红小白
null
小明-24-476777XXX

Map结构:

@Test
    public void testMap() {
        Jedis jedis = new Jedis("192.168.99.105", 6379);
        //-----添加数据----------
        Map<String, String> map = new HashMap<String, String>();
        map.put("name","小米");
        map.put("age", "22岁");
        map.put("qq", "123456");
        map.put("爱好", "看书");
        jedis.del("userSet");
        jedis.hmset("userSet", map);
        //取出userSet中的name,执行结果:[minxr]-->注意结果是一个泛型的List
        //第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数
        List<String> rsmap = jedis.hmget("userSet", "name", "age", "qq","爱好");
        System.out.println(rsmap);

        //删除map中的某个键值
        jedis.hdel("userSet", "age");
        System.out.println(jedis.hmget("userSet", "age")); //因为删除了,所以返回的是null
        System.out.println(jedis.hlen("userSet")); //返回key为userSet的键中存放的值的个数3
        System.out.println(jedis.exists("userSet"));//是否存在key为userSet的记录 返回true
        System.out.println(jedis.hkeys("userSet"));//返回map对象中的所有key
        System.out.println(jedis.hvals("userSet"));//返回map对象中的所有value

        //可以用循环Map的方式打印
        for(String key : jedis.hkeys("userSet")){
            System.out.println(key + ":" + jedis.hmget("userSet", key).get(0));  //值存的是List
        }
    }

运行结果:

[小米, 22岁, 123456, 看书]
[null]
3
true
[name, qq, 爱好]
[看书, 小米, 123456]
name:小米
qq:123456
爱好:看书

List 结构:

@Test
    public void testList() {
        Jedis jedis = new Jedis("192.168.99.105", 6379);
        //开始前,先移除所有的内容
        jedis.del("userSetList");
        System.out.println(jedis.lrange("list", 0, -1));
        //先向key userSetList中存放三条数据
        jedis.lpush("userSetList", "spring");
        jedis.lpush("userSetList", "struts");
        jedis.lpush("userSetList", "hibernate");
        //再取出所有数据jedis.lrange是按范围取出,
        // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
        List<String> list = jedis.lrange("userSetList", 0, -1);
        System.out.println(list.get(0));
        System.out.println(list);

        jedis.del("userSetList");
        jedis.rpush("userSetList", "spring");
        jedis.rpush("userSetList", "struts");
        jedis.rpush("userSetList", "hibernate");
        System.out.println(jedis.lrange("userSetList", 0, -1));
    }

运行结果:

[]
hibernate
[hibernate, struts, spring]
[spring, struts, hibernate]

Set结构:

        Jedis jedis = new Jedis("192.168.99.105", 6379);
        //添加
        jedis.del("userSet");
        jedis.sadd("userSet", "liuling");
        jedis.sadd("userSet", "xinxin");
        jedis.sadd("userSet", "ling");
        jedis.sadd("userSet", "zhangxinxin");
        jedis.sadd("userSet", "who");
        //移除noname
        jedis.srem("userSet", "who");
        System.out.println(jedis.smembers("userSet"));//获取所有加入的value
        System.out.println(jedis.sismember("userSet", "who"));//判断 who 是否是userSet集合的元素
        System.out.println(jedis.srandmember("userSet"));
        System.out.println(jedis.scard("userSet"));//返回集合的元素个数

运行结果:

false
ling
4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值