后台服务工具redis:详解redis操作命令
1、 登录
[root@bigdata1 bin]# ./redis-cli 本机登录
[root@bigdata1 bin]# ./redis-cli -h 127.0.0.1 -p 6379 –a password 远程登录 127.0.0.1:6379> quit 退出
2、 数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
String(字符串):string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
String类型是Redis最基本的数据类型,一个键最大能存储512MB。 Hash(哈希):
Redis hash 是一个键值(key=>value)对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 每个 hash 可以存储 232 -1 键值对(40多亿)。 List(列表):
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。 Set(集合):
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 Zset(有序集合):
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
3、 命令介绍
String(字符串):
127.0.0.1:6379> SET key \ 设置key 127.0.0.1:6379> GET key 读取key
127.0.0.1:6379> GETRANGE key 0 3 读取key对应的value前四个字符
127.0.0.1:6379>GETSET db mongodb 设定key的value,并返回旧value,没有旧值,返回nil 127.0.0.1:6379> MGET key1 key2 返回一个或者多个给定的key值 Hash(哈希):
127.0.0.1:6379> HMSET myhash field1 \ 同时将多个 field-value (字段-值)对设置到哈希表中。
127.0.0.1:6379> HGET KEY_NAME FIELD_NAME 用于返回哈希表中指定字段的值
127.0.0.1:6379> HEXISTS myhash field1 哈希表含有给定字段,返回 1 。 如果哈希表不含有给定字段,或 key 不存在,返回 0
127.0.0.1:6379> HKEYS myhash 获取哈希表中的所有域(field) List(列表):
127.0.0.1:6379> LPUSH KEY_NAME VALUE1.. VALUEN 将一个或多个值插入到列表头部 127.0.0.1:6379> LRANGE list1 0 -1 返回列表中指定区间内的元素
Set(集合):
127.0.0.1:6379> SADD myset \ 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
127.0.0.1:6379> SMEMBERS myset1 返回集合中的所有的成员。 不存在的集合 key 被视为空集合。
Zset(有序集合):
127.0.0.1:6379>ZADD myzset 2 \ 用于将一个或多个成员元素及其分数值加入到有序集当中。
127.0.0.1:6379>ZCARD myzset 获取结合中元素的数量。
4、 封装的redis基本命令
import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.BinaryClient.LIST_POSITION; import redis.clients.jedis.JedisCluster;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class redisCluster {
private static final Log log = LogFactory.getLog(redisCluster.class); JedisCluster jedisCluster=null;
ClassPathXmlApplicationContext context=null; /**
* 构造函数,初始化jedis连接池 */
public redisCluster(){
try{
context = new
ClassPathXmlApplicationContext(\
context.start();
jedisCluster = (JedisCluster) context.getBean(\}
catch(Exception e){
log.error(\context.stop(); System.exit(0);
} } /**
* 关闭连接 */
public void closeRedisCluster(){ } //Key(键) /**
* 删除指定的key * @param key * @return 删除的数量 */
public Long delete(String key){ } /**
* 检查指定的key是否存在 * @param key
* @return 存在:返回1 不存在:返回0 */
public Boolean exists(String key){ } /**
return jedisCluster.exists(key); return jedisCluster.del(key); jedisCluster.close();