Redis总结--redis的数据类型和简单操作

一、redis的五大数据类型
1、String(字符串)
2、Hash(哈希,类似于java的Map)
3、List(列表)
4、Set(集合)
5、Zset(sorted set 有序集合)
二、常用命令:
(一)key
1、exists key : 判断某个key是否存在
2、move key db :把当前库的某个可以移动到db库 eg:move k1 2
3、expire key 秒钟 :为给定的可以设置过期时间
4、ttl key : 查看还有多少秒过期  -1 永不过期,-2表示已过期
5、keys * : 查看所有key
6、type key :查看key的类型
7、del key : 删除 key
8、flushall:清空所有key
9、shutdown : 关闭redis
(二)list:一值多value,字符串链表,左右都可以插入,如果值全部移除,则可以消除
1、lpush mylist1 1 2 3 4 5 :存入一个list 从左向右先入栈,用lrang 输出先输出栈顶(5,4,3,2,1)
2、rpush mylist2 1 2 3 4 5 :存入一个list 从右向左先入账,用lrang 输出先输出栈顶(1,2,3,4,5)
3、lrange mylist1 0 1 :输出前两个,0到 -1 为输出全部,按栈顶的顺序
4、lpop mylist1 :从栈顶输出 5
5、rpop mylist1 :从栈底输出 1
6、lindex mylist1 1 : 按索引下标获取元素
7、llen mylist1 : 获取长度
8、lrem mylist1 2 3 : 删除n个值  删除(mylist1中) 2 个 3
9、ltrim mylist 3 5 : 截取3 5 重新赋值给mylist1
10、rpoplpush mylist1 mylist2 : 将mylist1的栈底给mylist2的栈顶
11、 lset mylist1 0 x : 给mylist1 的下标为0的设置成 x 
12、linsert mylist before/after x java : 在x 的前面或者后面插入java
(三)set:一值多value,重复值会去除重复
1、sadd set01 1 1 2 2 3 3  添加
2、smembers set01 输出
3、scard set01 个数
4、srem set01 1 删除集合元素
5、srandmember set01 3 随机出3个人元素
6、spop set01 随机出栈
7、smove set01 set02 1 将set01的某个值移植给set02
8、sdiff set01 set02 差集,在第一个set里面,不在第二个里面
9、sinter set01 set02 交集
10、sunion set01 set02 并集
(四)hash: k v模式,v 是一个键值对
1、hset user id 11 新增(v 是 id 和 11 一对),存在则覆盖
2、hget user id 取值
3、hmset cusomer id 11 name lisi age 26 
4、hmget cusomer id name lisi
5、hmgetall customer 取全部
6、hdel user name 删除
7、hlen user 长度
8、hexists user name 是否存在 存在为1 不存在为 0
9、hkeys user  获取所有key
10、hvals user 获取所有value
11、hincrby customer age 2 递增2
12、hincrbyfloat customer age 2.5 递增小数
13、hsetnx user name 14 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。搜索若域 field 已经存在,该操作无效。
(五)Zset :有序set,在set的基础上加一个score值,egzset k1 score v1 score v2
1、zadd zset01 60 v1 70 v2 80 v3 90 v4  新增
2、zrange zset 0 -1 不带值输出
3、zrange zset 0 -1 withscores 带值输出
4、zrangebyscore zset01 30 (50 输出30 到50的,(  代表不包含 limit 返回数量限制
5、zrem zset01 v5 删除
6、zcard zset01 统计个数
7、zcount zset01 60(60 80) 统计分数个数
8、zrank zset01 v2 获取下标
9、zscore zset01 v2 获取分数
10、zrevrank zset01  v2 逆序获取下标的值
11、zrevdange zset01 0 -1 逆序输出
12、zrevrangebyscore set01 60 90 按逆序分数范围输出 90 到 60
 

三、java调用redis

1、依赖:

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

2、利用Jedis调用

public class RedisAPI {

	public static void main(String[] args) {
		Jedis jedis = new Jedis("IP",6379);
		/*jedis.set("k1", "1");
		System.out.println(jedis.get("k1"));
		Set keys = jedis.keys("*");
		System.out.println(keys.size());*/
		
		//list
		List<String> l1 = new ArrayList<String>();
		l1.add("list1");
		l1.add("list2");
		l1.add("list3");
		for (String str : l1) {
			jedis.lpush("list1", str);
		}
		jedis.lpop("list1");
		List<String> lrange = jedis.lrange("list1", 0, -1);
		System.out.println(lrange.size());
		jedis.del("list1");
		
		//set
		List<String> l2 = new ArrayList<String>();
		l2.add("list1");
		l2.add("list2");
		l2.add("list3");
		l2.add("list2");
		for (String str : l2) {
			jedis.sadd("set1", str);
		}
		
		Set<String> smembers = jedis.smembers("set1");
		for (String string : smembers) {
			System.out.println(string);
		}
		System.out.println(jedis.scard("set1"));
		jedis.del("set1");
		
		//map
		jedis.hsetnx("map1", "name", "张三");
		jedis.hset("map1", "password", "123456");
		System.out.println(jedis.hget("map1", "name"));
		System.out.println(jedis.hlen("map1"));
		jedis.hdel("map1", "name");
		jedis.hdel("map1", "password");
		
		//zset
		jedis.zadd("zset", 100, "zset2");
		jedis.zadd("zset", 60, "set1");
		Set<String> set = jedis.zrange("zset", 0, -1);
		for (String string : set) {
			System.out.println(string);
		}
		jedis.del("zset");
	}

}

猜你喜欢

转载自blog.csdn.net/qq_25011427/article/details/83833826
今日推荐